自重新启动基准以来,中止了旧的git重新基准并丢失了提交


70

废话!大约一周前,我在尝试清理存储库时重新提交了一些提交,显然我并没有真正完成它。今天,一个星期后又提交了几个提交,我去重新设置了基础,以重新安排从今天开始的几个提交,它告诉我我已经处于重新设置的中间。

以防万一,这应该是复制我的仓库的提示。但是我没有……相反,我跑了git rebase --abort,当时听起来不错。好吧,那是不对的。它终止了一周前的重新设置,并将主服务器的HEAD重置为旧的。假!

我还有其他一些分支机构,这些分支机构是最近的,并且已经多次推送到远程站点,但是最新的更改似乎永远消失了。我没有适当级别的git-fu,无法知道是否有任何方法可以恢复我的更改。

我搞砸了吗?

编辑-哇!多谢你们!git reflog太棒了!我完全康复了...教训。标记Tchalvak的答案被第一个发布。

Answers:


117

检查git reflog。几乎在所有情况下,您都可以使用这些提交哈希作为参考来回溯过去。

我还将物理上的git repo目录复制到其他地方,作为进行初步测试的地方,以查看将要执行的操作,这样一来,您可以将所需的内容弄乱,而不会丢失未跟踪的文件或使事情回到无法返回的状态从。


11
git reflog只是使我免于失去工作时间。谢谢!
Christian Oudard

4
我爱你这个答案。如果我能投票十次,我会。
RobW

这节省了我的培根-我希望我可以对其进行三倍投票...惊讶的是,似乎没有GUI可以显示此信息...
chadbr

这个2010年的答案真救了我!拯救生命9年!
cpr4t3s

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.