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

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

  • 它们与 master 有何关系?那么是否有 MASTER^ , MASTER~1 ??

    最佳答案

    HEAD 是当前分支上最近提交的同义词,无论它是什么。
    HEAD^(或 HEAD^1 )表示 HEAD 的第一个父节点。 merge 提交有多个父项,因此 HEAD^2 指的是 HEAD 的第二个直接父项,该父项参与创建 HEAD 的 merge 。
    HEAD~1HEAD~ 相同。在这种情况下,它与 HEAD^ 同义。要查看差异,请考虑 HEAD~2HEAD 的祖 parent 。使用 ~ 可以追溯到几代人。

    如果你碰巧在 master 分支上,那么 HEAD 指的是 master。如果您在分支 topic/foo 上,那么它会在您在该分支上时引用该分支。

    大小写对 git 很重要。 MASTER^MASTER~1 很可能会产生表格的错误

    致命:模棱两可的参数“MASTER~1”:未知修订版或路径不是
    在工作树中。

    但是 master^master~1 是有意义的。

    有关解决提交的多种方法的完整详细信息,请参阅 git rev-parse documentation

    关于git - HEAD、HEAD^、HEAD~1有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20954566/

    10-15 13:33