[Git] 一連のGitコマンド実行例の各記事で使用する主要なコマンドの一覧

[一連のGitコマンド実行例(計61個)](https://qiita.com/dl_from_scratch/items/597bc28a4787a7901d21#%E5%8B%95%E4%BD%9C%E3%82%92%E8%A9%A6%E3%81%99-%E4%B8%80%E9%80%A3%E3%81%AEgit%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E5%AE%9F%E8%A1%8C%E4%BE%8B-%E7%B7%A8)の各記事で使用した主要なGitコマンドの一覧を、下記に列挙します。下記の中からGitコマンドを探して、適切な記事を見つける際に便利です。

# 「動作を試す一連のGitコマンド実行例」各記事での主要なコマンド一覧

### [実行例1：始めの設定](https://qiita.com/dl_from_scratch/items/efc77ec47393e442ebad)
git config --global user.name "person1"
git config --global user.email person1@abc.def
git config --list --global
git config --list

### [実行例2：-hでヘルプを表示する](https://qiita.com/dl_from_scratch/items/7cd7ac09f4f4089588ad)
git -h
git add -h
git commit -h

### [実行例3：initでリポジトリ作成](https://qiita.com/dl_from_scratch/items/14d1308c6d9d4c8aa4ac)
git init

### [実行例4：addとcommitでコミットする](https://qiita.com/dl_from_scratch/items/c214c521180ea0f68a1e)
git add test1.txt
git commit -m "message1"
git add .
git commit -a -m "message3"

### [実行例5：logでコミット履歴を見る・検索する](https://qiita.com/dl_from_scratch/items/a4db247acdfd3c7381ba)
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で現在の作業フォルダ内の変更状況を見る](https://qiita.com/dl_from_scratch/items/cc1e4839815fbccbb23b)
git status
git status -s
git add *.txt
git restore --staged .

### [実行例7：showでコミット履歴を見る](https://qiita.com/dl_from_scratch/items/c8ea6c200fbaa91adc14)
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で過去のファイル内容を表示する](https://qiita.com/dl_from_scratch/items/d495e43edb93ffae57db)
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で変更の差異を見る](https://qiita.com/dl_from_scratch/items/804cb5bcf2753311f038)
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で変更した人を見る](https://qiita.com/dl_from_scratch/items/b3a357a9435bd16752cb)
git blame -- test1.txt
git blame -L 2,3 -- test1.txt

### [実行例11：blameでコピー元を調べる(失敗)](https://qiita.com/dl_from_scratch/items/3a7f9cd778c8d2b5a151)
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でファイル内容を検索する](https://qiita.com/dl_from_scratch/items/ace5508d8e65b90de0aa)
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でコマンドのエイリアス(別名)を作成する](https://qiita.com/dl_from_scratch/items/a56a161c6654240cb0b4)
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でバージョン管理から外す](https://qiita.com/dl_from_scratch/items/1e36862ba67bf424a764)
git clean -f -df

### [実行例15：configで設定して日本語ファイル名を表示する](https://qiita.com/dl_from_scratch/items/74c938554af8dc8f5acc)
git config --global core.quotepath false
git diff --staged
git clean -f

### [実行例16：checkoutで履歴中の前後のコミット位置へ移動する](https://qiita.com/dl_from_scratch/items/08536939844317c6959c)
git checkout 00cad71

### [実行例17：stashで作業フォルダ内の変更を一時退避する](https://qiita.com/dl_from_scratch/items/17d2906d768a1ddee427)
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から異なる内容を戻すと壊れる](https://qiita.com/dl_from_scratch/items/cd886f191421d0d041eb)

(既出、新規コマンドなし)

### [実行例19：resetでコミットを削除する・強制的に戻す](https://qiita.com/dl_from_scratch/items/1a664d561e03b54587b9)
git reset 00cad71
git reset --hard 00cad71

### [実行例20：reflogでこれまでの操作を戻す](https://qiita.com/dl_from_scratch/items/ef2484788126226ea5cc)
git reflog
git reset --hard HEAD@{2}

### [実行例21：--amendで前回コミット内容を修正する](https://qiita.com/dl_from_scratch/items/3bd37ccf9b5afb1f7036)
git commit --amend -m "message4(corrected)"

### [実行例22：revertでコミットを削除する(コミット履歴に削除の記録が残る)](https://qiita.com/dl_from_scratch/items/3b05caf020d621d89568)
git revert HEAD --no-edit
git revert "HEAD^^^..HEAD" --no-edit

### [実行例23：revertで一部のみのコミットを戻すとマージが必要](https://qiita.com/dl_from_scratch/items/4046dd791d0beed50680)
git show 00cad71
git revert 00cad71 --no-edit
git revert --continue --no-edit

### [実行例24：gcでガベージコレクション(履歴を完全に削除する)](https://qiita.com/dl_from_scratch/items/7e824b3498dd8d69ccc0)
git show 0bf814e --oneline -s
git gc
git reflog expire --expire=now --all
git gc --aggressive --prune=now

### [実行例25：cleanで管理していないファイルを削除する](https://qiita.com/dl_from_scratch/items/6eaaf83d51060ee87054)
git clean -n
git clean -dn
git clean -f
git clean -df

### [実行例26：ファイル名の変更は自動で追跡される](https://qiita.com/dl_from_scratch/items/259cd1fa418d366124dc)

(既出、新規コマンドなし)

### [実行例27：tagでタグ作成](https://qiita.com/dl_from_scratch/items/574993a4919e02236dbd)
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を起動する](https://qiita.com/dl_from_scratch/items/19e04b394ca33aa8e497)
git gui

### [実行例29：branchでブランチ作成 (checkout -b)](https://qiita.com/dl_from_scratch/items/fa4662ba8a336e2f0e19)
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でブランチのコミット履歴を調べる](https://qiita.com/dl_from_scratch/items/3e5b6beb57428c503303)
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でマージする](https://qiita.com/dl_from_scratch/items/bafa09f6ae544340e9cd)
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でマージを明示的に打ち消して戻す](https://qiita.com/dl_from_scratch/items/115d75239e51cfbd9c7f)
git revert -m 1 HEAD --no-edit

### [実行例33：cherry-pickで一部のコミットをマージする](https://qiita.com/dl_from_scratch/items/5f3dba80422dce432efc)
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コマンドを用いて更に複数回マージしてみる](https://qiita.com/dl_from_scratch/items/8f04abf9bed828cbdb6f)
git diff -U3
git log --oneline --graph --all --stat -5

### [実行例35：任意のブランチをコミット履歴の中で自由に移動させる](https://qiita.com/dl_from_scratch/items/a579d8ae7edf01b4d047)
git checkout <branch名>
git checkout -b <branch_temp名>
git branch -D <branch_temp名>
git checkout -b branch_temp

### [実行例36：branchコマンドでチェックアウトせずにブランチを自由に移動させる](https://qiita.com/dl_from_scratch/items/a6addaeb6dc3ef826a74)
git branch -f master branch2

### [実行例37：-Xours・-XtheirsでOur・Theirsの選択をしたマージを行う](https://qiita.com/dl_from_scratch/items/d72b61d192f9bc355a1e)
git log --oneline --graph --all -5
git merge -Xours branchX2
git merge -Xtheirs branchX2
git merge -s ours branchX2

### [実行例38：rebaseでブランチの派生元を変更する](https://qiita.com/dl_from_scratch/items/3cab5cec1c8d6b33cdac)
git rebase master
git rebase --continue
git config --global core.editor notepad

### [実行例39：shortlogで以降のすべてのコミットの概要を得る](https://qiita.com/dl_from_scratch/items/69435549754f4b7b8e17)
git shortlog master --no-merges --not 94996a0
git shortlog master --not branch2

### [実行例40：remoteでリモートリポジトリを利用(外部とのやり取り)](https://qiita.com/dl_from_scratch/items/b9b46150f08e7ad2f7e2)
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でローカルリポジトリからリモートリポジトリを作成](https://qiita.com/dl_from_scratch/items/7c37c8da1a8f8fd5645a)
git clone --bare D:/test-space/local-repo2 remote-repo2.git

### [実行例42：branchでリモートリポジトリを指すブランチ追跡ヘッダを削除](https://qiita.com/dl_from_scratch/items/0e49693247b27a6ed97e)
git branch -d -r origin/master
git fetch origin branch-R1

### [実行例43：fetch/merge/pullでリモートリポジトリから履歴を取得](https://qiita.com/dl_from_scratch/items/26ba1c71d9e7f146ec06)
git pull
git remote add origin "D:/test-space/remote-repo1.git"
git pull origin master

### [実行例44：--depth=1でリモートリポジトリから過去1つの履歴しか取得しない](https://qiita.com/dl_from_scratch/items/87358c17ca8d8a520dd9)
git fetch --depth=1 origin master

### [実行例45：grafted表記のブランチをfetch取得する際の挙動を見る](https://qiita.com/dl_from_scratch/items/45d135dee5b7abf86c5a)
(既出、新規コマンドなし)

### [実行例46：--depth=1でローカルブランチに対して過去1つの履歴しか残さない](https://qiita.com/dl_from_scratch/items/4ebb337c23adeccc1e92)
git fetch --depth=1 . master
git remote remove origin

### [実行例47：チェックアウトせずにカレントブランチ以外のブランチをfetch更新・fetchマージ・push送信](https://qiita.com/dl_from_scratch/items/97027797cef50dbfbe5c)
git push origin master:master
git branch -f branch-R1 origin/branch-R1
git fetch . branch-R1:branch-R2

### [実行例48：リモートとローカルで別名のブランチを指定してfetch/push](https://qiita.com/dl_from_scratch/items/c38411b9c597af795a7c)
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でリモートリポジトリのブランチ位置を強制的に移動](https://qiita.com/dl_from_scratch/items/a4fc0b27b5ef2abd3fe1)
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で(チェックアウトせずに)リモートリポジトリにブランチを作成](https://qiita.com/dl_from_scratch/items/59c15b71b147f4149f47)
git push origin c69a305:refs/heads/branch-F1
git push origin 94996a0:branch-F2

### [実行例51：fetchで引数を省略した時の振る舞いを見る](https://qiita.com/dl_from_scratch/items/c30a25692d69e8974e99)
git fetch
git fetch origin branch-R1 branch-R2

### [実行例52：pullで引数を省略した時の振る舞いを見る](https://qiita.com/dl_from_scratch/items/ec2c4eeed01c4666cecb)
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でタグ情報をリモートリポジトリに送信](https://qiita.com/dl_from_scratch/items/1290584a3589bb8d8717)
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リポジトリを単純にコピーして複製可能](https://qiita.com/dl_from_scratch/items/c232b02e9970a477525a)
(既出、新規コマンドなし)

### [実行例55：remote・fetchでローカルリポジトリ間同士でも同様に履歴取得が可能](https://qiita.com/dl_from_scratch/items/3ea224b9a1f576278d86)
(既出、新規コマンドなし)

### [実行例56：remote・pushでローカルリポジトリ間同士でpush送信(要設定変更)](https://qiita.com/dl_from_scratch/items/c898d7cc2ef7c3e9ce8a)
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したコミット履歴を他人が取得した後にコミット履歴を消した場合の挙動を見る](https://qiita.com/dl_from_scratch/items/1a3300da8886c17d5405)
git pull -f origin branch-R1
git pull origin
git rebase origin/master

### [実行例58：format-patchで作業内容をpatchテキストファイルにまとめて別送付する](https://qiita.com/dl_from_scratch/items/21345a134030600a21bb)
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で作業内容をバイナリファイルにまとめて別送付する](https://qiita.com/dl_from_scratch/items/16bc7015ecc4f1040a06)
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で作業内容をテキスト形式にまとめて別送付する](https://qiita.com/dl_from_scratch/items/6d4be4c5ad9a512ba907)
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で特定のフォルダ(サブモジュール等)だけを(上書き)マージする](https://qiita.com/dl_from_scratch/items/7b83f4c3f7df1c468722)
git checkout <ブランチ名> -- <ファイル名>
git checkout <ブランチ名> <ディレクトリ名>
git checkout branch-R1 sub1/sub2
git checkout branch-R1 sub1
git diff d94cddb..e1c9dd0
git diff 1247fa9..e1c9dd0 --stat