在'git rm -rf'之后恢复暂存但未提交的文件

时间:2013-01-23 08:07:32

标签: git git-rm git-fsck

在我的本地计算机上,我从文件夹中删除了文件。

git init
git add --all
然后我写了(不要问我,为什么!:))

git rm -rf

我还没有承诺。现在我的项目中有空文件夹。在.git文件夹中objects有53 MB的文件。

如何恢复文件?我尝试过Drill Disc和Stellar等程序,但没找到我的文件。我无法从GIT回滚。

如何恢复丢失的文件?

2 个答案:

答案 0 :(得分:11)

(更新)使用git fsck代替,它是一个内置命令,用于检索您添加到git存储库的文件。

git fsck --lost-found --unreachable

在命令处理之后,检索到的文件将放在.git/lost-found/other,文件名为sha256哈希。虽然原始名称仍然丢失,但内容将会恢复。


您可以在.git/objects目录中找到您的文件。

假设有一个.git/objects/2f/ae996f8f8f9298b41ba4fdbac3d62014f9579e对象,您可以执行

git cat-file -p 2fae996

获取丢失文件的内容。

但我很抱歉,我不知道重建你的目录或自动执行此操作。

答案 1 :(得分:0)

你试过了吗?

git reset --hard

希望有效:)