1. ホーム
  2. git

[解決済み] HEAD~ vs HEAD^ vs HEAD@{}、チルダ vs カレット vs アットマーク。

2023-04-26 12:13:32

質問

HEADは現在のブランチへのポインタです。私は、HEADの祖先のために、以下のような様々な表記を見たことがあります。

  • HEAD~2
  • HEAD^2
  • HEAD@{2}
  • HEAD~~
  • HEAD^^

上記のそれぞれは、正確には何を意味しているのでしょうか?これに関するドキュメントはどこにあるのでしょうか?

どのように解決するのですか?

ドキュメントから ここで .

  • HEAD~2 : HEADより2つ古いコミット
  • HEAD^2 HEAD がマージの場合は HEAD の 2 番目の親、そうでない場合は不正。
  • HEAD@{2} : の概要の 3 番目のリストを参照します。 git reflog
  • HEAD~~ : HEADより2つ古いコミット
  • HEAD^^ : HEAD よりも 2 つ古いコミット

HEAD がマージされたのであれば

  • 最初の親 は、マージした先のブランチです。
  • 第二親 はマージしたブランチです。

いくつかの組み合わせと同義語

First Parent    First Grandparent    Second Parent    Second Grandparent

HEAD~
HEAD^
HEAD~1          HEAD~2               HEAD^2           HEAD^2~        
HEAD^1          HEAD^^                                HEAD^2^