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

use*_*024 15 git git-fsck git-rm

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

git init
git add --all
Run Code Online (Sandbox Code Playgroud)

然后我写了(不要问我,为什么!:))

git rm -rf
Run Code Online (Sandbox Code Playgroud)

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

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

如何恢复丢失的文件?

dyn*_*yng 11

(更新)使用git fsck,相反,它是用于检索您曾经加入到Git仓库文件内置命令.

git fsck --lost-found --unreachable
Run Code Online (Sandbox Code Playgroud)

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


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

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

git cat-file -p 2fae996
Run Code Online (Sandbox Code Playgroud)

获取丢失文件的内容.

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