【问题标题】:Git recover uncommitted changesGit 恢复未提交的更改
【发布时间】:2011-03-15 12:03:51
【问题描述】:

我有很多本地更改。

我只是不小心做了

git merge another_branch
git reset --hard HEAD^

做了大量的工作。 :( 我不想在这里合并更改。

如何恢复原始状态?

不,本地更改从未提交/隐藏。

不可能?

【问题讨论】:

  • 你看过git stash吗?可能是你需要的,但我不是 100% 确定
  • 另请参阅recover staged files的步骤

标签: git recover


【解决方案1】:

如果更改从未提交/隐藏/暂存,那么您就不走运了。如果有,那么您应该能够通过在 git reflog 中查找更改来恢复您的更改。

【讨论】:

    【解决方案2】:

    尽管对跟踪文件的未提交修改将会丢失,但我认为任何未跟踪文件仍然存在,除非您随后删除它们。

    【讨论】:

      【解决方案3】:

      对于在 ide 中遇到此问题的任何人,都有解决方案。 搜索您的 ide 的 ide 编辑器历史文件。我遇到了android studio的问题,所以在这里我会给你一个android studio的解决方案。

      例如:在 android studio 中,您始终可以通过右键单击项目文件夹->本地历史记录->显示历史记录来查看以前的文件。

      您可以查看文件的更改历史记录,还可以打开文件并将其与新文件并排比较。如果您需要旧代码,只需从那里复制粘贴即可。

      【讨论】:

      • 这是我的问题的解决方案!
      • 与此建议类似,某些 IDE 会自动保存备份文件。例如,MATLAB 从 2012 年或 2013 年开始,自动将备份 m-files.asv 扩展名保存在原始文件的同一目录中。
      • 拯救了我的一天(y)
      【解决方案4】:

      尝试直接从 IDE 撤消文件。你会得到你需要的。

      可能对@Lakshman Prasad 没有帮助,但会帮助其他人:-D

      【讨论】:

        【解决方案5】:

        查看回收站! 我在那里找到了我已删除(未提交)的文件

        【讨论】:

          【解决方案6】:

          我能够通过使用git log -g 恢复我的文件 我的更改在那里,因为我提交了一次,然后取消提交我的更改,然后我看到我正在处理的所有文件都丢失了,

          通过git log -g || git reflog -g 将显示最近的提交日志,

          我找到了我的提交哈希,并使用此命令git reset #commitHashID 进行了检查

          这可能对有类似情况的人有所帮助

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-05-15
            • 2022-08-18
            • 1970-01-01
            • 2012-08-15
            • 2016-08-15
            • 2018-07-01
            • 2013-09-30
            • 2016-06-23
            相关资源
            最近更新 更多