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 恢复未提交的更改的主要内容,如果未能解决你的问题,请参考以下文章