Gitコマンド虎の巻

HEAD

HEADは、現在のブランチの先頭(最新のコミット)を指し示すキーワードです。

HEADを使用したコミットの指定

特定のコミットを指し示すにはコミットIDを使いますが、
HEADキーワードを使うと、最新コミットIDから相対的にコミットを指し示すことができます。

以下のキーワードを組み合わせてコミットを相対的に指定します。

【HEAD関連キーワード】
キーワード説明
HEAD現在使用しているブランチの先頭。
最新のコミットIDを指し示す
~(チルダ)前世代表す
^(キャレット)マージコミットなどで親が複数存在する場合にどの親かを示す

親が1つの場合(チルダ)

単純にコミットされた場合など、親が1つのみの場合は「~」(チルダ)を使用します。

【チルダキーワードを組み合わせた例】
HEAD現在のブランチの最新のコミット
HEAD~現在のブランチの最新のコミットの1つ前のコミット
HEAD~~
HEAD~2
現在のブランチの最新のコミットの2つ前のコミット
HEAD~~~
HEAD~3
現在のブランチの最新のコミットの3つ前のコミット

(例)最新コミットと1つ前のコミットの差分を確認する

git diff HEAD HEAD~

親が複数ある場合(キャレット)

マージコミットの場合など、親が複数存在する場合は「^」(キャレット)を使用します。

【キャレットキーワードを組み合わせた例】
HEAD^現在のブランチの最新のコミットの1つめの親
HEAD^2現在のブランチの最新のコミットの2つめの親
HEAD^^現在のブランチの最新のコミットの1つめの親のさらに1つめの親

(例)最新のコミットを取り消す

git reset --soft HEAD^

備考

  • HEAD~~ とHEAD~2 は同じ意味ですが、HEAD^^ とHEAD^2 は違う意味なのでご注意ください。