恢复 - git reset --hard HEAD ^

时间:2010-07-15 22:24:53

标签: git commit reflog

不幸的是,我曾多次git reset --hard HEAD^在几个文件中丢失了相当大的代码。有没有办法恢复那些提交,或者在这种情况下转发HEAD之前的位置,所以我可以提出我丢失的那些线?

2 个答案:

答案 0 :(得分:17)

使用reflog恢复上一个HEAD的sha1。特别是,文章reflog, your safety net将与您特别相关。从那篇文章:

  

此命令最常见的用法是您刚刚完成了git reset并将HEAD移回了一些提交。但是oops,你需要在第二次提交时留下的那些代码。废话。现在怎么样?

找到要返回的提交的sha1后,请使用以下内容:

git reset --hard 0a1b2c

答案 1 :(得分:0)

如果您刚刚提交了代码并且想撤消该代码,请运行git reset --hard HEAD@{1}

请参阅http://book.git-scm.com/4_git_treeishes.html

处的“序数规格”一节