【问题标题】:Restore files deleted with git clean -df恢复使用 git clean -df 删除的文件
【发布时间】:2016-11-15 23:51:09
【问题描述】:

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

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

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

任何帮助将不胜感激,因为我存储了一些非常重要的数据。 谢谢

【问题讨论】:

标签: git


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    简短的回答,很可能没有!

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

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

    【讨论】:

    • IDE 是指我的存储设备吗?
    • @KebabJens 否,集成开发环境 (IDE)。例如 Eclipse、Visual Studio 等...
    • 啊哈,我用的是 Clion,但 tat 被“清理”的文件夹是我的 Windows 用户文件夹,包含我桌面上的任何内容、我的所有文档(word、excel、PDF 等)和其他东西存储在我的 Windows 用户帐户中。所以我的编程文件仍然是安全的,但这是我现在最不担心的。
    • 对不起,我不明白删除的文件超出了您的编程文件(您尚未提交的代码文件)
    【解决方案3】:

    如果您使用的是 Eclipse,而您只是缺少代码或文本,请不要绝望,并非所有内容都可能丢失。前往:

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

    然后使用grep (*nix)、FINDSTR (Windows) 或类似工具搜索您知道已在已删除文件中出现的文本 sn-ps。 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 只显示最后一行输出。

    【讨论】:

      猜你喜欢
      • 2019-04-03
      • 2014-11-01
      • 2011-09-10
      • 2020-07-09
      • 2014-05-02
      • 1970-01-01
      • 2017-01-20
      • 2021-08-30
      • 2011-06-28
      相关资源
      最近更新 更多