LoginSignup
4
3

More than 5 years have passed since last update.

GitのHEADをつかったコミットの指定方法

Last updated at Posted at 2016-04-11
この記事では以下の環境について書いています。
Mac OS X(10.11.3)
git version 2.3.1

HEADの指定

git show HEAD

HEADは現在のブランチの最新のコミットですが、HEAD~やHEAD^のようにすることでHEADの先祖を遡って指定することができます。
コミットには直系の親だけがいる場合と第二、第三の親(継父母?)などもいる場合があります。

コミットグラフが一本線の場合、遡りたい数だけ ~ をつければ指定したいコミットまでたどり着けます。また、HEAD~~~~~~~~~~~などとすると冗長になるのでHEAD~12という風に省略できます。
マージなどで履歴が枝分かれしている場合はHEAD^(1番目の親)、HEAD^2(2番目の親)という風に指定します。
はじめのうち混乱しやすいのは、HEAD~~(親の親)のようにHEAD^^としても1番目の親の1番目の親つまり、親の親なのでHEAD~~と結果が同じになるところでしょうか。一般的に4番目の親、5番目の親というようなものが出来ることは稀だと思うので必要なことは少なそうですが、そういう場合はHEAD^4、HEAD^5という風に記述します。(HEAD^^^^やHEAD^^^^^は別の意味)

指定方法 説明 つまり...
HEAD~ HEADの親
HEAD~1 HEADの親
HEAD^ HEADの親
HEAD~~ HEADの親の親 祖父母
HEAD~2 HEADの2代前の親 祖父母
HEAD^^ HEADの1番目の親の1番目の親 祖父母
HEAD^2 HEADの二番目の親 2番目の親
HEAD^2~~ HEADの二番目の親の親 2番目の親の親

まとめ

HEAD~2とHEAD^2は違うコミットをさすが、HEAD~~とHEAD^^は同じコミットを指す。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3