与HEAD,HEAD ^和HEAD~1有什么区别?

时间:2014-01-06 16:31:11

标签: git

在git中,以下是什么区别?

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

它们与master有什么关系?那么有MASTER^MASTER~1 ??

1 个答案:

答案 0 :(得分:9)

HEAD是当前分支上最新提交的同义词,无论它是什么。

HEAD^(或HEAD^1)表示HEAD的第一个父级。合并提交具有多个父项,因此HEAD^2指的是HEAD的第二个立即父项,其中包含创建HEAD的合并。

HEAD~1HEAD~相同。在这种情况下,它与HEAD^同义。要查看差异,请考虑HEAD~2HEAD的祖父母。使用~可以追溯到几代人。

如果您恰好位于master分支上,则HEAD指的是主人。如果你在分支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