2014-01-06 7 views
6

gitでは、次の違いは何ですか?HEAD、HEAD ^、HEAD〜1との違いは何ですか?

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

そして、どのように彼らはmasterに関係していますか?だからMASTER^MASTER~1 ??

+1

たとえば、http://jk.gs/gitrevisions.htmlの構文リファレンスを参照してください。 –

+3

ここで情報を見つけることができます。http://stackoverflow.com/questions/2221658/whats-the-difference-between -head-and-head-in-git – Robert

答えて

8

HEADは、現在のブランチでの最新のコミットと同義です。

HEAD^(またはHEAD^1)は、HEADの最初の親を意味します。マージコミットは、複数の親を持っているので、HEAD^2HEADを作成し、マージに関与していたHEADの第二即時の親を指します。

HEAD~1は、HEAD~と同じです。この場合、それはHEAD^と同義です。違いを見るには、HEAD~2が祖父母のHEADであると考えてください。 ~を使用すると、世代が戻ります。

masterブランチにいる場合、HEADはmasterを指します。 topic/fooの支店にいる場合は、支店にいる間その支店を参照します。

gitで大文字と小文字が問題になります。 MASTER^またはMASTER~1フォーム

fatal: ambiguous argument 'MASTER~1': unknown revision or path not 
in the working tree.

しかしmaster^master~1のエラーを生成する可能性がある有意義です。

は、あなたがコミットに対応できる多くの方法の完全な詳細についてはgit rev-parse documentationを参照してください。

関連する問題