建议我使用此命令将代码还原到Origin存储库中的方式:
git reset --soft HEAD~1
我在寻找有关此的信息,但没有找到任何解释的
HEAD~1
命令的〜1部分是什么?
此语法的官方文档在gitrevisions
manpage中。
HEAD~1
表示:使用第一个父母从 HEAD
返回1个提交(大多数提交只有一个父母,因此该语法涵盖了大多数您想返回的情况)。
HEAD~1
是如此普遍,也可以将其缩短为 HEAD~
。
不过,重要的是要了解HEAD
与原点存储库的状态无关!在这些情况下,HEAD~1
将恰好与原点的当前状态匹配:
- 您刚从原点拉(合并),并创建了合并提交(提示合并提交消息)。
- 您是最新的,然后在顶部进行了一个新的提交。
在其他情况下,您可能会使用@{upstream}
来引用当前分支的上游(也记录在gitrevisions
manpage中)。
最后,--soft
通常也不是正确的选择。这意味着您的所有更改都将保存在工作树和索引中。您的文件根本不会更改,git status
将显示所有更改为"要订立"。
如果您基本上想点击重置按钮,而则不可撤销地销毁所有人与上游相比,您所拥有的所有承诺和不承诺的更改,我建议这样做:
git reset --hard @{upstream}