Git 恢复未提交的更改

Posted

技术标签:

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

我有很多本地更改。

我只是不小心做了

git merge another_branch
git reset --hard HEAD^

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

如何恢复原始状态?

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

不可能?

【问题讨论】:

你看过git stash吗?可能是你需要的,但我不是 100% 确定 另请参阅recover staged files的步骤 【参考方案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 进行了检查

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

【讨论】:

以上是关于Git 恢复未提交的更改的主要内容,如果未能解决你的问题,请参考以下文章

如何处理未提交的更改

重新提交在 git 中恢复的提交

使用未提交的更改从“hg update”中恢复

Git更改未推送提交的作者[重复]

sh 将所有未提交的更改移动到新分支,并将现有分支恢复为HEAD。“master”具有未提交的更改。你决定了

如何详细显示 Git 中未提交的更改和一些 Git 差异