HEAD
HEADは、現在のブランチの先頭(最新のコミット)を指し示すキーワードです。
HEADを使用したコミットの指定
特定のコミットを指し示すにはコミットIDを使いますが、
HEADキーワードを使うと、最新コミットIDから相対的にコミットを指し示すことができます。
以下のキーワードを組み合わせてコミットを相対的に指定します。
キーワード | 説明 |
---|---|
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 は違う意味なのでご注意ください。