首页 > 解决方案 > 使用未提交的文件撤消 git reset --hard

问题描述

我有一个现有的 java 项目,我做了以下

cd existing_folder
git init
git remote add origin URL
git add .
git reset --hard

我不小心做了git reset --hard有没有办法恢复我的数据

就是这样,它删除了我项目的所有目录和文件

标签: gitgit-reset

解决方案


您可以尝试从索引对象中恢复。我想你正在寻找这个。

以前阶段性的更改(git add)应该可以从索引对象中恢复

git reset HEAD@{0}

您可以使用git reflog show列出索引

git reflog show

输出将像一个

93567ad HEAD@{0}: reset: moving to HEAD@{6}    
203e84e HEAD@{1}: reset: moving to HEAD@{1}    
9937a76 HEAD@{2}: reset: moving to HEAD@{2}
203e84e HEAD@{3}: checkout: moving from master to master
203e84e HEAD@{4}: reset: moving to HEAD~1
9937a76 HEAD@{5}: reset: moving to HEAD~1
d5bb59f HEAD@{6}: reset: moving to HEAD~1
9300f9d HEAD@{7}: commit: fix-bug

更详细的信息从 git reset --hard 中恢复?

您也可以使用 . 将对象写入其中,.git/lost-found/git fsck --lost-found可以使用它git show <filename>来查看每个文件的内容。


推荐阅读