当我想将最后一次提交返回到暂存区时,我一直在使用 git reset --soft HEAD^
和 git reset --soft HEAD~1
。我一直在互换使用它们,但想知道是否存在任何细微差别?如果没有,你能解释一下语法上的区别吗? ^
只是 ~1
的别名吗?
最佳答案
HEAD^
和 HEAD~1
指的是同一个提交。
^
指的是提交的第一个父级。 ~n
指的是第 n 个祖先。所以 ^^
(parent-of-parent)等同于 ~2
。
我能想到的主要微妙之处在于当前提交是否有多个父项(即它是一个 merge 提交)。在这种情况下,HEAD^
和 HEAD^2
都是有效的并且引用不同的提交。 HEAD~1
指的是 HEAD^
而不是 HEAD^2
gitrevisions man page有很多细节和例子。
关于git - git reset 命令之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17097472/