Using `git clean` in a folder deleted its contents
我尝试在文件夹中使用Git,然后使用git glean -df,发现所有内容都消失了。
这是否意味着我丢失了文件,有什么办法可以找回它们?
当您运行git clean -df时,您要求Git
Remove untracked files from the working tree
包括目录。 您还告诉Git忽略其安全网。
如果Git知道文件(即曾经被add或stash编辑过的文件,即使它们从未被commit编辑过),则它们应该可以恢复。 尝试运行git fsck --cache --no-reflogs --lost-found --unreachable,然后在.git/lost-found/中查找已删除的对象。
否则,Git无法检索它们。 您将不得不依赖其他工具,例如现有备份,文件系统快照,文件同步工具或文件系统恢复工具。
-
感谢您的答复,但是请告诉我如何恢复它们?
-
@ E.Aly,正如我在回答中所说,如果从未将这些文件add放入存储库,Git无法恢复它们。它根本不知道它们曾经存在过。那是你的情况吗?
-
我添加了它们,然后使用clean命令
-
@ E.Aly,我只是做了一些阅读。如果文件被add记录,则将被跟踪。 git clean -df不应该删除它们。确定要add他们吗?无论如何,您可以尝试运行git fsck --cache --no-reflogs --lost-found --unreachable,然后在.gitlost-found中查找已删除的对象。但是,如果文件永远不在Gits索引中,则将无法正常工作。
-
我这样做了,在.gitlost-foundother文件夹中有一个类型为(File)且名称类似于<1fa2f85a378526d292a60974f3b2e63d57f595ea>的文件的列表,这些文件吗?
-
@ E.Aly,它们是非提交的Git对象。有些可能代表您丢失的文件。请打开它们,看看是否可以找到丢失的文件。
-
感谢一百万@Chris,它确实起作用了,我发现了丢失的文件...我真的不知道该如何感谢你!
-
@ E.Aly,我很高兴听到这个消息!接受我的回答是感谢我的好方法。这会给我们双方奖励信誉点,并将您的问题标记为已解决,以便其他用户可以从中受益。您还提出了其他一些似乎已经回答的问题;请考虑在那里也接受答案。
-
做到了,再次感谢您,您是救命稻草!