一連のGitコマンド実行例(計61個)の各記事で使用した主要なGitコマンドの一覧を、下記に列挙します。下記の中からGitコマンドを探して、適切な記事を見つける際に便利です。
「動作を試す一連のGitコマンド実行例」各記事での主要なコマンド一覧
実行例1:始めの設定
git config --global user.name "person1"
git config --global user.email person1@abc.def
git config --list --global
git config --list
実行例2:-hでヘルプを表示する
git -h
git add -h
git commit -h
実行例3:initでリポジトリ作成
git init
実行例4:addとcommitでコミットする
git add test1.txt
git commit -m "message1"
git add .
git commit -a -m "message3"
実行例5:logでコミット履歴を見る・検索する
git log
git log -2
git log --oneline
git log --oneline --graph
git log --oneline --graph --stat
git log --oneline test2.txt
git log --oneline -p test2.txt
git log --oneline -SAdded-12
git log --oneline -S"Added-12"
git log --oneline -SAdded-12 -p
git log --oneline -SAdded-21 --stat
実行例6:statusで現在の作業フォルダ内の変更状況を見る
git status
git status -s
git add *.txt
git restore --staged .
実行例7:showでコミット履歴を見る
git show
git show --stat
git show --oneline --stat
git diff HEAD "HEAD^"
git show --oneline --stat "HEAD^"
git show --oneline --stat HEAD~
git show --oneline --stat "HEAD^^"
git show --oneline --stat HEAD~~
git show --oneline --stat HEAD~2
git show --oneline --stat "HEAD^^^"
git show --oneline --stat "HEAD^3"
git show --oneline --stat HEAD~3
実行例8:showで過去のファイル内容を表示する
git show "HEAD^":test1.txt
git show 20bbab7:test1.txt
git show 20bbab7:test1.txt 20bbab7:test2.txt
git show 00cad71:test1.txt
git show master:test1.txt
実行例9:diffで変更の差異を見る
git diff 20bbab7
git diff 20bbab7 --stat
git diff 20bbab7 --numstat
git diff 20bbab7 --shortstat
git diff 20bbab7 --name-status
git diff 20bbab7 test1.txt
git diff 20bbab7 "test1.txt"
git diff 20bbab7 -- test1.txt
git diff 20bbab7 -U1 test1.txt
git diff 4ace194 20bbab7
git diff -w
実行例10:blameで変更した人を見る
git blame -- test1.txt
git blame -L 2,3 -- test1.txt
実行例11:blameでコピー元を調べる(失敗)
git log --oneline -1
git commit -m "blame test"
git blame -C -- test8.txt
git log -S"Sample-Added-12" --oneline
git reset --hard "HEAD^"
実行例12:grepでファイル内容を検索する
git grep Sample
git grep -n Sample
git grep --count Sample
git grep -n --break Sample
git grep -n --break --heading Sample
git grep -n Sample 00cad71
git grep -n Sample HEAD~2
git grep -G "Add.*[2-3]"
git grep -n --break --heading -e "**" -e "Sample" --and ( -e "14" -e "41" )
実行例13:configでコマンドのエイリアス(別名)を作成する
git config --global alias.mylog "log --oneline --graph --all"
git mylog
git config --global alias.mydir "!dir /b"
git mydir
git config --global --unset alias.mydir
実行例14:.gitignoreでバージョン管理から外す
git clean -f -df
実行例15:configで設定して日本語ファイル名を表示する
git config --global core.quotepath false
git diff --staged
git clean -f
実行例16:checkoutで履歴中の前後のコミット位置へ移動する
git checkout 00cad71
実行例17:stashで作業フォルダ内の変更を一時退避する
git stash
git stash -u
git stash list
git stash apply 0
git stash -u -m "stash1"
git stash drop 1
git stash show 0
git stash show 0 -p
git stash show 0 -p -U1
実行例18:異なるコミット位置の状態で、stashから異なる内容を戻すと壊れる
(既出、新規コマンドなし)
実行例19:resetでコミットを削除する・強制的に戻す
git reset 00cad71
git reset --hard 00cad71
実行例20:reflogでこれまでの操作を戻す
git reflog
git reset --hard HEAD@{2}
実行例21:--amendで前回コミット内容を修正する
git commit --amend -m "message4(corrected)"
実行例22:revertでコミットを削除する(コミット履歴に削除の記録が残る)
git revert HEAD --no-edit
git revert "HEAD^^^..HEAD" --no-edit
実行例23:revertで一部のみのコミットを戻すとマージが必要
git show 00cad71
git revert 00cad71 --no-edit
git revert --continue --no-edit
実行例24:gcでガベージコレクション(履歴を完全に削除する)
git show 0bf814e --oneline -s
git gc
git reflog expire --expire=now --all
git gc --aggressive --prune=now
実行例25:cleanで管理していないファイルを削除する
git clean -n
git clean -dn
git clean -f
git clean -df
実行例26:ファイル名の変更は自動で追跡される
(既出、新規コマンドなし)
実行例27:tagでタグ作成
git tag -a v1.4 -m "version 1.4"
git show v1.4 --oneline -s
git show v1.4-Lite --oneline -s
git tag v1.2-Lite 00cad71
git tag -n
git tag -l "v*Lite"
git checkout -b v1_2_L v1.2-Lite
git branch -D v1_2_L
git tag -d v1.2-Lite
実行例28:guiコマンドによりGit GUIを起動する
git gui
実行例29:branchでブランチ作成 (checkout -b)
git branch -v
git show-branch
git log --oneline --graph --all
git branch --contain 94996a0
git branch --contain 94996a0 -v
git branch --contain -r 94996a0
git branch --list branch -v
git branch --list -r branch
git branch branch3
git branch -D branch3
実行例30:logでブランチのコミット履歴を調べる
git log --oneline --graph master
git log --oneline --graph master branch1
git log branch1..branch2 --oneline
git log branch2 --not branch1 --oneline
git log branch2 "^branch1" --oneline
git log branch2..branch1 --oneline
git log branch1 --not branch2 --oneline
git log branch1 "^branch2" --oneline
git log branch1...branch2 --oneline
git log branch1...branch2 --oneline --left-right
git merge-base branch1 branch2
git log branch1 branch2 --oneline
git log branch1 branch2 --not master --oneline
git log branch1 branch2 "^master" --oneline
実行例31:mergeでマージする
git checkout branch1
git log branch1..master --oneline
git log ..master --oneline
git log branch1..master --oneline --stat
git log branch1..master --oneline -p -U1
git merge master
git diff
git diff --ours
git diff --theirs
git diff --base
git merge --abort
git reset --hard HEAD
git log --oneline --left-right HEAD...MERGE_HEAD
git log --oneline --left-right --merge
git log --oneline --left-right --merge -p -U1
git checkout --conflict=diff3 test1.txt
git commit --no-edit
git show -s
実行例32:revertでマージを明示的に打ち消して戻す
git revert -m 1 HEAD --no-edit
実行例33:cherry-pickで一部のコミットをマージする
git log branch2..master --oneline
git show d10f934 --oneline
git cherry-pick d10f934
git cherry-pick --continue --no-edit
git log master..branch2 --oneline
実行例34:mergeコマンドを用いて更に複数回マージしてみる
git diff -U3
git log --oneline --graph --all --stat -5
実行例35:任意のブランチをコミット履歴の中で自由に移動させる
git checkout
git checkout -b
git branch -D
git checkout -b branch_temp
実行例36:branchコマンドでチェックアウトせずにブランチを自由に移動させる
git branch -f master branch2
実行例37:-Xours・-XtheirsでOur・Theirsの選択をしたマージを行う
git log --oneline --graph --all -5
git merge -Xours branchX2
git merge -Xtheirs branchX2
git merge -s ours branchX2
実行例38:rebaseでブランチの派生元を変更する
git rebase master
git rebase --continue
git config --global core.editor notepad
実行例39:shortlogで以降のすべてのコミットの概要を得る
git shortlog master --no-merges --not 94996a0
git shortlog master --not branch2
実行例40:remoteでリモートリポジトリを利用(外部とのやり取り)
git init --bare --shared
git remote -v
git fetch origin
git push origin master
git branch -a -v
git clone D:/test-space/remote-repo1.git local-repo2
git merge origin/master
git reset --hard HEAD~2
git push origin branch-R1
git branch -a -vv
実行例41:--bareでローカルリポジトリからリモートリポジトリを作成
git clone --bare D:/test-space/local-repo2 remote-repo2.git
実行例42:branchでリモートリポジトリを指すブランチ追跡ヘッダを削除
git branch -d -r origin/master
git fetch origin branch-R1
実行例43:fetch/merge/pullでリモートリポジトリから履歴を取得
git pull
git remote add origin "D:/test-space/remote-repo1.git"
git pull origin master
実行例44:--depth=1でリモートリポジトリから過去1つの履歴しか取得しない
git fetch --depth=1 origin master
実行例45:grafted表記のブランチをfetch取得する際の挙動を見る
(既出、新規コマンドなし)
実行例46:--depth=1でローカルブランチに対して過去1つの履歴しか残さない
git fetch --depth=1 . master
git remote remove origin
実行例47:チェックアウトせずにカレントブランチ以外のブランチをfetch更新・fetchマージ・push送信
git push origin master:master
git branch -f branch-R1 origin/branch-R1
git fetch . branch-R1:branch-R2
実行例48:リモートとローカルで別名のブランチを指定してfetch/push
git fetch origin master:master-A1
git fetch origin branch-R1:branch-R111
git push origin master-A1:master
git push origin branch-R2:branch-R222
git push --delete origin branch-R222
実行例49:pushでリモートリポジトリのブランチ位置を強制的に移動
git push -f origin master
git fetch origin master branch-R1
git push -f origin 00cad71:branch-R1
git branch branch-R1 00cad71
git push origin e009b2d:branch-R1
git config receive.denyNonFastforwards false
実行例50:pushで(チェックアウトせずに)リモートリポジトリにブランチを作成
git push origin c69a305:refs/heads/branch-F1
git push origin 94996a0:branch-F2
実行例51:fetchで引数を省略した時の振る舞いを見る
git fetch
git fetch origin branch-R1 branch-R2
実行例52:pullで引数を省略した時の振る舞いを見る
git branch -vv -a
git branch -u origin/branch-R1 branch-R1
git pull origin branch-R1 --ff-only
git pull origin branch-R1 --rebase
git rebase --abort
git pull --all
git fetch . origin/branch-R1:branch-R1
実行例53:pushでタグ情報をリモートリポジトリに送信
git push origin v1.5
git push origin --tags
git tag T2 00cad71
git push origin T2
git ls-remote --tags
git push origin --delete T2
実行例54:Gitリポジトリを単純にコピーして複製可能
(既出、新規コマンドなし)
実行例55:remote・fetchでローカルリポジトリ間同士でも同様に履歴取得が可能
(既出、新規コマンドなし)
実行例56:remote・pushでローカルリポジトリ間同士でpush送信(要設定変更)
git push -f origin-L2 origin/master:master
git push -f origin-L2 origin/master:refs/heads/master
git push -f origin-L2 master
git checkout -b master origin/master
git config --get-all receive.denyCurrentBranch
git config --add receive.denyCurrentBranch ignore
git push -f origin-L2 c69a305:master
git config --local --unset-all receive.denyCurrentBranch
実行例57:一度pushしたコミット履歴を他人が取得した後にコミット履歴を消した場合の挙動を見る
git pull -f origin branch-R1
git pull origin
git rebase origin/master
実行例58:format-patchで作業内容をpatchテキストファイルにまとめて別送付する
git format-patch e009b2d
git format-patch e009b2d..6bbd0ed
git am 0001-message-S1.patch
git am --show-current-patch=diff
git am --abort
git am 0001-message4.patch 0002-message-R1.patch 0003-message-S1.patch 0004-message-S2.patch 0005-message-S3.patch
git am 0004-message-S2.patch 0005-message-S3.patch
実行例59:bundleで作業内容をバイナリファイルにまとめて別送付する
git bundle create repo.bundle HEAD master
git bundle create commits.bundle master ^9a466c5
git bundle verify ../commits.bundle
git fetch ../commits.bundle master:other-master
git bundle create test1.bundle branch-R1
git clone test1.bundle
git bundle create test1.bundle branch-R1 HEAD
git bundle create test1.bundle e009b2d..branch-R1
git bundle create test1.bundle branch-R1 e009b2d..ed2b786
git bundle verify /test-space/local-repo2/test1.bundle
git fetch /test-space/local-repo2/test1.bundle
git bundle list-heads /test-space/local-repo2/test1.bundle
git bundle unbundle /test-space/local-repo2/test1.bundle
git show --oneline -s 6bbd0ed49e37456cf3c85d2eee32f4639413839f
git show --oneline -s 09f2860
git bundle unbundle /test-space/local-repo2/test1.bundle
git fetch /test-space/local-repo2/test1.bundle branch-S1
git fetch /test-space/local-repo2/test1.bundle branch-S1:branch-S1
実行例60:diffで作業内容をテキスト形式にまとめて別送付する
git diff e009b2d > test1.diff.patch
git show branch-R1:test1.txt
git diff e009b2d..6bbd0ed > test1.diff.patch
git apply test1.diff.patch
git branch -D branch-R1 branch-S1
実行例61:checkoutで特定のフォルダ(サブモジュール等)だけを(上書き)マージする
git checkout <ブランチ名> -- <ファイル名>
git checkout <ブランチ名> <ディレクトリ名>
git checkout branch-R1 sub1/sub2
git checkout branch-R1 sub1
git diff d94cddb..e1c9dd0
git diff 1247fa9..e1c9dd0 --stat