在git中,以下有什么区别?
头
头^
HEAD~1
HEAD~2
它们与 master
有什么关系?那么有没有MASTER^
, MASTER~1
??
最佳答案
HEAD
是当前分支上最新提交的同义词,无论它是什么。
HEAD^
(或HEAD^1
)表示HEAD
的第一个父级。 merge 提交有多个父级,因此 HEAD^2
指的是 HEAD
的第二个直接父级,它参与了创建 的 merge >头
。
HEAD~1
与 HEAD~
相同。在这种情况下,它与 HEAD^
同义。要查看差异,请考虑 HEAD~2
是 HEAD
的祖 parent 。使用 ~
可以追溯到几代人。
如果你刚好在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有关您可以处理提交的许多方法的完整详细信息。
关于git - HEAD、HEAD^ 和 HEAD~1 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20954566/