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 は違う意味なのでご注意ください。