Recover staged but not committed files after 'git rm -rf'

烈酒焚心 提交于 2019-12-17 15:56:25

问题


On my local machine I removed files from folder.

git init
git add --all

then I wrote (don't ask me, why! :) )

git rm -rf

I don't commit, yet. Now I have empty folders in my project. In .git folder has objects with 53 Mb of files.

How can I recover my files? I've tried programs like Drill Disc and Stellar, but not found my files. And I can't rollback from GIT.

How can I recover the lost files?


回答1:


(update) Use git fsck instead, it is a builtin command for retrieving files you have once added to git repository.

git fsck --lost-found --unreachable

after the command processing, retrieved files will be placed at .git/lost-found/other, with file name of a sha256 hash. Although the original name is still lost, the content will be back.


You can find your files in your .git/objects directory.

Suppose there is a .git/objects/2f/ae996f8f8f9298b41ba4fdbac3d62014f9579e object, you can execute

git cat-file -p 2fae996

to get the content of your lost file.

But I'm sorry, I have no idea about reconstructing your directory or doing this automatically.




回答2:


have you tried :

git reset --hard

?

Hope that works :)



来源:https://stackoverflow.com/questions/14475003/recover-staged-but-not-committed-files-after-git-rm-rf

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!