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

我犯了一个可怕的错误,执行“git reset – hard HEAD”,整天的本地修改失败了,我该如何恢复?

感谢数百万

如果你还没有提交你的本地修改(或者至less是通过git add ,那么它们就不存在了) git reset --hard对于未提交的修改是一个破坏性的操作。

如果你确实发生了阶段,但没有提交它们,请尝试git fsck --lost-found ,然后search.git/lost-found的内容 – 它将包含所有未被引用的对象一个已知的提交,并且可以包括已经上演的文件的版本。

你可以使用git reflog 。 它会显示HEAD历史。 你可以在git reset --hard之前select表示HEAD状态的哈希,并在另一个git reset --hard使用这个哈希值。

第一次运行:

 git reflog 

它会显示你的头指针的历史。 然后从第一列中选​​择必要状态的sha-code。 我认为这将是靠近HEAD @ {1},如果你只是混帐重置 – 一次硬。 接着

 git merge SHA_CODE 

答对了!

更多的例子,你可以在这里find: http : //www.programblings.com/2008/06/07/the-illustrated-guide-to-recovering-lost-commits-with-git/

你可以用git fsck --lost-found来恢复你的git add ed, git fsck --lost-found .git/lost-foundfind .git/objects -type f | xargs ls -lt | sed 60q find .git/objects -type f | xargs ls -lt | sed 60q会给你最后60个东西添加到回购,这将有所帮助。

任何你没有git add东西肯定就像你自己删除了一样。

如果您的IDE具有“本地历史logging”(Eclipse具有此function,IDEA也AFAIK),那么也许可以通过这种方式恢复您的更改。

我用我的Intelliji“本地历史”恢复了不是“git add”的文件。