git add .
我运行git rm -r -f .
后,我的所有本地文件都被意外删除了。
使用git fsck --lost-found
恢复后,我在lost-found/other
目录中有this:
git fsck --full
notice: HEAD points to an unborn branch (master)
Checking object directories: 100% (256/256), done.
notice: No default references
dangling blob 0453ac74117a3e02ae1169ac28e6df356baec5b6
dangling blob 871364bedccaa2c57054509feeb60955e70bd141
dangling blob c38f2c2aead5f278b7680a0629ee56682264f9d3
dangling blob c2ad8101cfcf3d21e33c8da3f0677b5b9cc58c30
dangling blob c5d98571c464030b61978b6812fa3579c7294b99
missing tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904
在看了一些悬垂的斑点后,我意识到虽然他们有删除文件的内容,但也有一些乱码:
slug_fieldtidtMetacBseZeZdZRS(tcreatedtownertimage(screatedsownersimage(R(R)Rtmodeltfields(((sE/home/invinciblycool/PycharmProjects/jotter_api/jotter/serializers.pyR1HsN((
R(R)R
tNonetTrueR4RtSlugRelatedFieldR3R1(((sE/home/invinciblycool/PycharmProjects/jotter_api/jotter/serializers.pyR+?s
tNoteSerializercBs3eZejdedd�Zddd��YZRS(R.R/R0R1cBseZeZdZRS(R3R2ttext(sownerscreatedstext(R(R)RR5R6(((sE/home/invinciblycool/PycharmProjects/jotter_api/jotter/serializers.pyR1Ss((R(R)RR9R8R3R1(((sE/home/invinciblycool/PycharmProjects/jotter_api/jotter/serializers.pyR:M (RRtrest_frameworkRtmodelsRRR t
ImageFieldR
如何恢复这些文件,实际上是从胡言乱语中我甚至不确定这些文件是否存在。 仅供参考,Javascript文件看起来很干净,但不是其他python和html文件。
答案 0 :(得分:2)
我试图重现你所做的事情:
1)git add .
2)rm -r -f *
在此之后我认为你创建了一个git reset
或git reset --hard
(错误的选择:它用空的覆盖了索引,因为你从未做过提交)...
但正确的命令如我之前的回答git checkout-index -af
中所示(但重置后这没用)
此时你正确地给出了git fsck --lost-found
,我的建议等同于较低级别的命令(git cat-file...
)
你确定在目录中只有源代码文件而不是(例如)python文件的编译版本(扩展名.pyc)吗?也许在IDE创建的一些隐藏目录中?
答案 1 :(得分:0)
1)rm -r -f .
应该在没有效果的情况下中止,可能是rm -r -f *
并且它没有删除.git
目录
2)命令git fsck --lost-found
没有中止
在这种情况下(仅删除工作目录)正确的命令,以尽可能恢复:
git checkout-index -af
:这会将当前索引上的版本(您刚放入git add .
的版本)复制到工作目录