^
中的git reset --hard HEAD^
与git reset --hard HEAD
相比有什么不同?
答案 0 :(得分:5)
HEAD^
是HEAD
的父提交。
如果您想了解详细信息,ref^
是ref^1
的快捷方式,其中ref^1
是提交的第一个父级(ref^2
是提交的第二个父级,如果提交不是合并提交,则可能不存在。)
还有ref~
也是提交的第一个父级。它也是ref~1
的捷径。但ref^2
和ref~2
之间的区别在于ref~2
是提交的第一个父级的第一个父级。可以ref~1
,ref~2
,...,ref~n
(如果历史记录足够长)。
对于git reset
- 它将当前分支重置为您指定的提交(--hard
意味着丢弃索引和工作树更改)。 git reset --hard HEAD^
向后重置当前分支一个提交,而git reset --hard HEAD
只丢弃所有本地更改。