在我的本地机器上,我从文件夹中删除了文件。
git init
git add --all
然后我写下了(别问我为什么! :))
git rm -rf
我现在尚未提交。我的项目中有空文件夹,在.git
文件夹中有53 MB的文件,其中包含objects
文件夹。
我该如何恢复我的文件?我尝试了像Drill Disc和Stellar之类的程序,但没有找到我的文件。而且我无法从GIT中回滚。
该如何恢复丢失的文件?
在我的本地机器上,我从文件夹中删除了文件。
git init
git add --all
然后我写下了(别问我为什么! :))
git rm -rf
我现在尚未提交。我的项目中有空文件夹,在.git
文件夹中有53 MB的文件,其中包含objects
文件夹。
我该如何恢复我的文件?我尝试了像Drill Disc和Stellar之类的程序,但没有找到我的文件。而且我无法从GIT中回滚。
该如何恢复丢失的文件?
(更新) 使用git fsck
代替,它是一条内置命令,用于检索您曾经添加到Git存储库中的文件。
git fsck --lost-found --unreachable
在命令处理后,检索到的文件将被放置在 .git/lost-found/other
目录下,文件名为sha256哈希值。尽管原始名称已经丢失,但是内容将会恢复。
.git/objects
目录中找到你的文件。.git/objects/2f/ae996f8f8f9298b41ba4fdbac3d62014f9579e
对象,你可以执行git cat-file -p 2fae996
获取您丢失文件的内容。
但很抱歉,我不知道如何重建您的目录或自动执行此操作。
git cat-file object > /path/to/where/you/want/save/it
,但我认为这不是一个好主意,因为没有关于文件名的信息。 - dynggit show 2fae996
也可以做到这一点(真惭愧,直到今天我才知道),show
是许多低级命令的通用上层接口。 - dyng你尝试过吗:
git reset --hard
?
希望可以成功 :)git rm -rf
后,你甚至可以安全地进行硬重置。 - Flavius