git reset --hard HEAD^ 和 git reset --hard HEAD 有什么区别?

8
在“git reset --hard HEAD^”与“git reset --hard HEAD”中,“^”代表什么意思?它们有什么区别?

3
请参考以下链接了解 Git 中的 head 和 HEAD 的区别:
  • https://dev59.com/zHE95IYBdhLWcg3wdtmj
  • https://dev59.com/UnE95IYBdhLWcg3wn_j2
- torek
1个回答

15

HEAD^HEAD 的父提交。

如果您想进一步了解,则 ref^ref^1 的简写,其中 ref^1 是提交的第一个父级(ref^2 是提交的第二个父级,如果提交不是合并提交,则可能不存在)。

还有 ref~,它也是提交的第一个父级。它也是 ref~1 的简写。但是 ref^2ref~2 之间的区别在于 ref~2 是提交的第一个父级的第一个父级。如果历史记录足够长,则可以有 ref~1ref~2、...、ref~n

至于 git reset - 它将当前分支重置为您指定的提交(--hard 意味着放弃索引和工作树更改)。git reset --hard HEAD^ 将当前分支向后重置一个提交,而 git reset --hard HEAD 则仅丢弃所有本地更改。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接