【问题标题】:Git undo command: "git reset --hard"Git 撤消命令:“git reset --hard”
【发布时间】:2018-05-30 14:22:31
【问题描述】:

我正在开发一个 intelliJ 中的 Java 项目。我在终端中输入了以下命令:“git reset --hard”。如何撤消此命令?在这个命令之前我没有提交任何东西。现在一切都丢失了吗?

【问题讨论】:

  • 没有任何东西(除了未提交的更改)会丢失。只需从 reflog 中签出提交,并从中创建一个分支。
  • @evolutionxbox 我没有提交任何东西。
  • 这不是答案,而是评论。
  • 我建议以后不要输入git reset --hard,除非您打算放弃未提交的更改

标签: git intellij-idea terminal


【解决方案1】:

有3种可能:

PS: 但是不要忘记使用 git 时最重要的规则之一“经常提交所有内容(尤其是在做您不掌握的事情之前)。您将始终能够检索您的更改/提交(至少使用reflog)"

【讨论】:

  • JetBrains 生产的所有 IDE 都会保留项目文件更改的历史记录。 @user7432713,您可以从中恢复一些未提交的更改。在应用程序菜单中查找“本地历史”命令(它位于 PhpStorm 和 RubyMine 中的 VCS 下,我手头没有 IntelliJ IDEA 的副本可供查看)。
【解决方案2】:

我使用 PHPStorm,但它很可能在任何 jetBrains IDE 中都相同,包括 intelliJ:

  1. 转到“项目”工具窗口并右键单击项目节点或只是一个文件夹,该文件曾经存在于该文件夹中。
  2. 在上下文菜单中,选择本地历史记录,然后单击子菜单上的显示历史记录:项目或文件夹的本地历史记录视图显示您在过去几天所做的所有事情。
  3. 玩得开心! :)

来源:https://blog.jetbrains.com/idea/2008/01/using-local-history-to-restore-deleted-files/

【讨论】:

    【解决方案3】:

    这在一定程度上是可能的,因为 intelij idea 存储所有已编辑文件的“本地历史记录”。 AFAIK 它仅适用于每个文件,因此您必须手动还原所有文件。但是还是可以用的不是吗? :-)

    您可以在 VCS > 本地历史 > 显示历史中访问它:

    然后您可以恢复到“外部更改”之前的版本:

    【讨论】:

      【解决方案4】:

      如果文件尚未提交/暂存,则 git reset --hard 无法撤消。
      在这种情况下,恢复工作的唯一方法是使用 Local History 恢复文件。

      【讨论】:

        【解决方案5】:

        如果您还没有创建git gc,您可以使用git reflog

        https://www.atlassian.com/git/tutorials/rewriting-history/git-reflog

        【讨论】:

        • 如果您有开放的更改,应该在 git 重置后打开更改,或者您应该收到一条错误消息,您有开放的更改,但我不确定。
        • @Stony Ty 为您解答。我对终端一无所知。我输入了命令“git reflog”。我看到一堆像“HEAD@{13}”这样的行。我应该知道什么?
        猜你喜欢
        • 2015-09-15
        • 2015-02-10
        • 2010-09-05
        • 2015-01-10
        • 2015-10-20
        相关资源
        最近更新 更多