我几天前犯了一些不好的代码,今天我改变并推动了一个老头来掌握。
在改头之前:
提交4
提交3 - 错误代码从此处开始
提交2 - 我在这里设置了头并推了
提交1
改变头后:
提交2 - 当前负责人
提交1
问题是现在我想要那些'糟糕的提交'。
有可能让他们回来吗?
答案 0 :(得分:1)
您可以使用git reflog
解决问题:
git reflog
a8U3Ild... HEAD@{10}: commit 3
e3Noj1q... HEAD@{11}: commit 4
找到您删除的提交的SHA-1
哈希值。您想要的提交是"提交4"在你回滚之前,这是分公司的负责人。然后,您可以将当前分支重置为"提交4"像这样:
git checkout master
git reset --hard e3Noj1q
答案 1 :(得分:1)
如果您在reflog中仍然引用了已删除的提交,则应该能够按照此处的说明恢复它们:
http://git-scm.com/book/en/v2/Git-Internals-Maintenance-and-Data-Recovery#Data-Recovery
git reflog的man页面:http://git-scm.com/docs/git-reflog
git fsck的手册页:http://git-scm.com/docs/git-fsck