恢复使用git clean -df删除的文件

时间:2016-11-15 23:51:10

标签: git

在从错误的目录添加文件并运行git clean -df函数后,我试图清除我的git。这导致我的所有用户数据都被删除。

此后我还没有在git中做更多的事情,而且我现在还不敢翻开我的电脑。但是,我注意到有一个.git文件夹,其中包含大约600MB的数据。是否有可能y文件存储在那里并可以恢复?

我运行Windows 10并且没有用户数据文件夹的任何备份或还原点。

任何帮助都会非常感激,因为我存储了非常重要的数据。 谢谢

3 个答案:

答案 0 :(得分:2)

除非您有备份或想要使用取消删除实用程序进行探索,否则无法从此恢复。 Git没有在任何地方保存备份。

答案 1 :(得分:0)

简短回答,最有可能没有!!

仍有一些IDE在本地跟踪和存储此信息,例如: Is it still possible to restore deleted untracked files in git?

因此,根据您的IDE或文本编辑器,它仍然可能。

答案 2 :(得分:0)

如果您使用的是Eclipse,并且只缺少代码或文本,请不要绝望,不会丢失所有内容。转到:

[WORKSPACE]/.metadata/.plugins/org.eclipse.core.resources/.history

然后使用grep(* nix),FINDSTR(Windows)或类似工具搜索您知道已删除文件中已出现的文本片段。 Eclipse保留了许多本地历史记录修订版,因此,如果您最近使用这些文件,则可能会有很多匹配项。然后,您需要找到其中的最新版本,这可能会有些棘手。

举个例子:在快速git clean -d -fx向同事展示此危险功能之后,我错过了一个未跟踪的Java代码文件,我知道该文件包含字符串XrefCollector。通过执行以下操作,我能够找到最近的本地历史记录修订版本:

find . -printf "%T@ %p\n" | sort -n | cut -d" " -f2 | xargs grep -l XrefCollector | tail -n1

在这里,find在文件前加上日期(纪元),sort(按数字排序),cut再次删除日期,xargs将文件名传递给到grep,以搜索所需的字符串。最后,tail仅显示输出的最后一行。