我执行后如何恢复:git reset --hard HEAD

Jac*_*cky 11 git ios

我犯了一个可怕的错误并执行"git reset --hard HEAD",整天当地的修改丢失了,我该如何恢复?

万分感谢

Wil*_*uta 30

你可以用git reflog.它将显示HEAD历史.您可以在git reset --hard此之前选择表示HEAD状态的哈希值,并在另一个哈希值中使用此哈希值git reset --hard.

  • 这救了我.这必须是被接受的答案! (2认同)

And*_*sky 16

第一次运行:

git reflog
Run Code Online (Sandbox Code Playgroud)

它将显示您的HEAD指针的历史记录.然后从第一列中选​​择必要状态的sha-code.我认为如果你只做git reset一次就会在HEAD @ {1}附近.然后

git merge SHA_CODE
Run Code Online (Sandbox Code Playgroud)

答对了!

您可以在此处找到更多示例:http: //www.programblings.com/2008/06/07/the-illustrated-guide-to-recovering-lost-commits-with-git/


Amb*_*ber 15

如果你还没有提交你的本地更改(或者至少通过git add它们git reset --hard进行更改,它们就会消失.对于未提交的更改,这是一种破坏性操作.

如果您确实碰巧暂存它们,但没有提交它们,请尝试git fsck --lost-found然后搜索内容.git/lost-found- 它将包含未被已知提交引用的所有对象,并且可能包含已暂存的文件版本.