【问题标题】:Accidentally deleted all of my file using git clean [duplicate]使用 git clean 意外删除了我的所有文件 [重复]
【发布时间】:2019-03-08 03:47:50
【问题描述】:

我在终端中执行git clean -df 命令不小心删除了几乎所有文件。有什么办法可以撤销这个动作?现在我电脑里的所有文件都不见了。 谢谢。

【问题讨论】:

  • “我电脑中的所有文件”,你能澄清一下你的意思吗?您是否将存储库放在系统磁盘的根目录或类似的东西上?请注意,git clean 将在给定正确选项时删除未跟踪的文件,除非您对它们进行单独备份,否则 no,无法询问 git 恢复这些文件。
  • @ES2018 对于这个问题,这不是一个很好的答案,因为结论是还必须做其他事情,因为git clean 只删除了 untracked文件。

标签: git macos terminal


【解决方案1】:

可悲的是,简短的答案 ID 号。

除非你添加文件或提交过一次,否则 git 没有办法知道它们;这正是你对 git clean 的意思(来自man git clean):

通过递归删除不是的文件来清理工作树 受版本控制

因此 git 在这里无法为您提供帮助...

【讨论】:

    【解决方案2】:

    如果有人遇到同样的问题并使用任何现代 IDE(如 PHP Storm 或 Intelli j 等),这些 IDE 会将本地文件存储在其更改历史记录中。

    我使用了git clean -f -d,我的一个未跟踪文件已从代码库中删除,但我能够通过以下方式恢复它:

    前往PHP风暴的View menu,点击recent changes

    我确信其他 IDE 会在某处拥有相同的更改历史记录,只需 google 一下即可。

    【讨论】:

      【解决方案3】:

      通常,在 git 上执行的每个操作都记录在 git reflog 中。 然后你会看到在 git 上完成的每个操作的 git 标签。 因此,您可以编写该命令,然后执行git reset --hard 在您执行 git clean 之前添加到命令的主题标签。因此,例如,如果您在 git clean ... 之前执行了 git commit ...(并且 git hashtag 是 #exampl),那么您在终端中写入:git reset --hard #exampl 并且您会回到执行不需要的命令之前的状态。

      【讨论】:

      • 很遗憾,这不适用于git clean,因为git clean 会删除跟踪的文件。
      猜你喜欢
      • 1970-01-01
      • 2012-11-15
      • 1970-01-01
      • 2013-06-23
      • 2018-08-27
      • 2019-04-03
      • 1970-01-01
      • 2022-09-28
      • 2021-08-30
      相关资源
      最近更新 更多