Git 命令速查表

git的初始化

git init

状态和搜索

#addしたファイルや修正したけどaddしてないファイルの状況など分かる
git status

#過去のコミットした状況が分かる
git log

git show

#直前のコミットとの差分(オプションなしdiff)
git diff

#2点間の差分が分かる
git diff [コミットID]..[コミットID]

#ブランチ同士の差分を見る
git diff [ブランチ名]..[ブランチ名]

#pullする前に、リモート追跡ブランチとの差分を確認する
#(たとえば今あなたがmasterブランチにチェックアウトしていて、リモートリポジトリのmasterと比較したい場合)
#1.まずリモートリポジトリから更新内容を取得してきて
git fetch origin
#2.ローカルリポジトリのmasterブランチの最新コミット(HEAD)と、リモート追跡ブランチ(origin/main)を比較する
git diff HEAD..origin/main

#push する前に、リモート追跡ブランチとの差分を確認する
#(ローカルで進めたコミットをpushする前に、リモートリポジトリの状態と比較したいとき)
git diff origin/master..HEAD

#保存したリスト(スタッシュリスト)を見る
git stash save

#特定の文字列を含む箇所を検索したい(大文字、小文字を区別する)
git grep "検索したい文字列"
#行番号も表示する設定
git config --gloal grep.lineNumber true

#コミットやブランチを指定して検索したい
git grep "検索したい文字列" [コミットID,ブランチ]

#特定ワードを含むファイル名のみ表示したい
git grep -l “検索したい文字列”

#いつ誰のコミットでその行が変更されたのかを調べられます。
git blame [ファイル名]

#タグを一覧表示
git tag

#スタッシュを表示
git stash list

编辑的修改如提交的反映

#ステージングする(ワイルドカード指定もできる)
git add ファイル名
#変更ファイルすべてをステージングする
git add .

#ステージングを下げる
git restore --staged ファイル名
#ステージングを下げる ファイルの変更まではもとに戻らない
git reset

#変更内容を確認する
git diff --cached

#コミット
git commit
#コメント付き(エディターが立ち上がらない)
git commit -m "ここにコメントを書き込む"
#変更の詳細を見れる
git commit -v

#コミットの内容を見る コミットIDははじめ4ケタだけでもいい
git show コミットID
#直近
git show

#別のブランチでやってる特定のコミットだけをコピーしてきて、コミットする
git cherry-pick [コミットID]
#複数は
git cherry-pick [コミットIDその1]..[コミットIDその2]
#取り込みたいけどコミットはしたくないとき(作業ディレクトリだけに反映する)
git cherry-pick -n [コミットID]

#作業中のファイルを一時保存
git stash save

#保存したリスト(スタッシュリスト)を見る
git stash list

#スタッシュを復活させる
git stash apply stash@{n}

#スタッシュを削除する
git stash drop stash@{n}

#スタッシュの復活&削除
git stash pop stash@{n}

#タグをつける
git tag [タグ名]

#注釈付きタグをつける(aはアノテート)
git tag -a [タグ名] -m "注釈"

#タグをリモートリポジトリに共有する
git push origin [タグ名]

#複数のタグを全部プッシュする
git push origin --tags

#タグを一覧表示
git tag

#ローカルリポジトリのタグの削除
git tag -d [タグ名]

#リモートリポジトリのタグの削除
git push origin --delete [タグ名]

恢复原样

#ワークディレクトリ上の変更を元に戻す
git checkout "ファイル名"
#ワークディレクトリ上の変更を元に戻す
git restore --worktree [ファイル名]
#ワークディレクトリ上の変更を元に戻す
git reset --hard HEAD

#特定のファイルを、特定のコミット時点に戻す
git restore --source [コミットID] [ファイル名]
#特定のファイルを、特定のコミット時点に戻す
git checkout [コミットID] [ファイル名]

#直前のコミットをやり直す(※push後には使ってはいけない)
git commit --amend

#リバート(指定したコミットと逆の内容をコミットする)(※push後にも使える)
git revert [打ち消したいコミットID]
#HEADの位置のみ
git reset --soft HEAD^
#8個前のコミットまで戻す
git reset --soft HEAD~8
#指定したコミットIDまで戻す
git reset --soft caddd1c
#HEADとステージも戻す(addしたファイルを、addする前に戻す)
git reset --mixed [ファイル名]
#HEADとステージも戻す(addしたファイルを、addする前に戻す)
git restore --staged [ファイル名]
#HEADとステージと作業ディレクトリも戻す
git reset --hard

#リフログ(HEADの移動履歴を表示)
git reflog
#戻りたい地点の数字を指定してリセットする
git reset --hard HEAD@{n}

#スタッシュを復活させる
git stash apply stash@{n}

#スタッシュを削除する
git stash drop stash@{n}

#スタッシュの復活&削除
git stash pop stash@{n}

分化

#ブランチの確認
git branch
#すべてのブランチを表示
git branch -a

#ブランチ生成
git branch 新規ブランチ名

#リモートブランチを元にローカルブランチを作成する
git branch [新規ローカルブランチ名] origin/[コピーしたいリモートブランチ名]

#ブランチ変更
git checkout ブランチ名
#ブランチ変更
git switch ブランチ名

#ブランチの生成&変更
git checkout -b 新規ブランチ名
git switch -c 新規ブランチ名

#ブランチ削除(小文字の場合はマージしていない変更があれば削除されない)
git branch -D[d] engawa

#前のブランチに戻る
git checkout -

#ブランチ名を変更する
git branch -m 変更後ブランチ名

#リモートブランチをローカルワークスペースに落とす
git checkout -t ブランチパス

#すでに消されたブランチをローカルでも消す
git fetch --prune
#すでに消されたブランチをローカルでも消す
git remote prune [リポジトリ名]

与远程的交流

#プッシュする
git push [リモート] [ローカルブランチ名]

#リモートリポジトリを表示
git remote

#登録(追加)されているリモートリポジトリのURLを表示
git remote -v

#リモートからローカルブランチにコピーする
git fetch

#リモートからワークツリーにマージする
git pull リモート名 ブランチ名

#リモートリポジトリ名を変更
git remote rename [旧リモート名] [新リモート名]

#リモートリポジトリを削除
git remote rm [リモートリポジトリの呼び名]

#リモートリポジトリを追加する
git remote add [リモートリポジトリの呼び名] [リモートリポジトリのURL]

合并重置

#マージ
git merge [ブランチ名]

#マージを中断する(コンフリクトが複雑なときとか)
git merge --abort

#リベース(親コミットを変更する。別のブランチの子コミットをポインタする)
git rebase [ブランチ名]

冲突

<<<<<<< HEAD
<h1>hello git1</h1>
=======
<h1>hello git2</h1>
>>>>>>> feature

如果发生冲突,请保留正确的代码并删除不必要的部分进行保存。

Git 的设置

# 設定ファイル閲覧
cat ~/.gitconfig
# 設定の閲覧(オプションでスコープを選択)
git config --list --global

#グローバル情報の設定(--local --systemもある)
git config --global user.name "名前"
git config --global user.email 自分のメアド

# ローカル情報の削除
git config --local --unset user.name

# 直前にコミットされた変更を修正し、作成者をリセットするために使用されます
git commit --amend --reset-author

#エイリアス
#git statusをgit stで使用可能にする
git config --global alias.st status

#grepで行番号も表示する
git config --gloal grep.lineNumber true

克隆

git clone [SSHのURL]

#initブランチから始める
git clone --branch init [SSHのURL]

SSH的公钥

# SSH鍵を作る
ssh-keygen -t rsa -b 4096 -C "コメント"
# -t rsa:鍵の種類(デフォルトでrsaだが確実性のため記載する)
# -b:バイト。鍵の長さ。長いほど強固になる。
# -C:コメント

# SSH鍵がつくられたディレクトリに移動
cd ~/.ssh

#SSH公開鍵を見る
cat id_rsa.pub
#コピーする
cat id_rsa.pub | pbcopy

#生成された鍵をGitHubにペーストして追加する
#done

使用SSH进行克隆

SSH是一种常用的方法

※使用HTTPS和GitHub CLI需要了解GitHub的独特知识。

    1. 生成SSH密钥

使用命令行生成和获取RSA密钥

ssh-keygen -t rsa -b 4096 -C “在这里添加注释”

会询问密钥保存的位置。默认为确定。
设置密码短语

cd ~/.ssh 将密钥移至指定位置

将id_rsa.pub文件内容复制到剪贴板

cat id_rsa.pub | pbcopy

返回GitHub,将密钥粘贴到密钥文本框中注册SSH密钥

https://github.com/settings/ssh/new

获取远程库的URL

打开GitHub上相应的库,复制Code→SSH标签页上的URL

克隆Git

git clone [SSH的URL]
输入SSH密码短语完成!

鍵のありか
ホームディレクトリ直下(~/.ssh)にある
id_rsa.pub:公開鍵。公開しても大丈夫な鍵。
id_rsa:複製厳禁なシークレットな鍵。


学问

GitHub 可以被解释为 “几书”。

可以在互联网上管理远程存储库的网站

分支

对于提交ID的引用(指针)

标题

现在对于正在操作的分支的引用(指针)

合并

快速合并 sù hé

将旧分支赶上新分支。

自动合并

整合分支

会生成一个名为“合并提交”的新提交

舞台

准备提交的更改

在更改工作目录时,只需提取想要提交的部分。


控制台

经常看到的消息

Your branch is ahead of 'origin/main' by 1 commit.

你的分支比’origin/main’向前推进了一个提交。

这表示远程分支有一个未包含的提交。这意味着尽管在本地仓库进行了更改,但这些更改尚未反映到服务器上。要获取远程分支的更改,首先需要拉取这些更改。


請遵守使用時的注意事項。

    • 極力、異なるブランチで同じファイルを編集しない

コンフリクト防止

pullやmergeする前に変更中の状態をなくしておく(commitやstashをしておく)
pullするときは、pullするブランチに移動してからpullする
detached HEAD にならないようにする

その状態で他のブランチにチェックアウトすると、コミットが消滅する
過去のコミットIDを直接指定してチェックアウトするとなってしまう


请提供一个URL作为参考

みんなのGit講座 – ソフトウェア開発現場で必須となる実践的なGitのスキルとお作法を現役のシニアエンジニアから学ぼう

Git: もう怖くないGit!チーム開発で必要なGitを完全マスター

マンガ・Git カテゴリーの記事一覧 – itstaffing エンジニアスタイル

bannerAds