简短回答:
git reset 'HEAD@{1}'
长答案:
Git 保留所有引用更新的日志(例如,签出、重置、提交、合并)。您可以通过输入以下内容来查看它:
git reflog
此列表中的某个位置是您丢失的提交。假设您刚刚输入git reset HEAD~
并想要撤消它。我的转发日志如下所示:
$ git reflog
3f6db14 HEAD@{0}: HEAD~: updating HEAD
d27924e HEAD@{1}: checkout: moving from d27924e0fe16776f0d0f1ee2933a0334a4787b4c
[...]
第一行说的是HEAD
0个位置之前(换句话说,当前位置)是3f6db14;它是通过重置为获得的HEAD~
。第二行说的是HEAD
1 个位置之前(换句话说,重置之前的状态)是 d27924e。它是通过检查特定提交获得的(尽管现在这并不重要)。因此,要撤消重置,请运行git reset HEAD@{1}
(or git reset d27924e
).
另一方面,如果您从那时起运行了一些其他命令来更新 HEAD,那么您想要的提交将不会位于列表的顶部,并且您需要搜索reflog
.
最后一点:查看reflog
对于您想要取消重置的特定分支,例如 master,而不是HEAD
:
$ git reflog show master
c24138b master@{0}: merge origin/master: Fast-forward
90a2bf9 master@{1}: merge origin/master: Fast-forward
[...]
这应该比一般的噪音要少HEAD reflog
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)