我一直在寻找解决这个错误的方法。无法在任何地方找到它。
我正在进行更大规模的更改,并且我做了一个提交 - 修改将此添加为我之前较小的更改的修补程序。但是,出于某种原因,我在编辑器中删除了commit --ammend消息(遗憾的是,它删除了我的提交)。所以我现在离开时没有任何变化。有什么方法可以让我的更改/文件回来吗?
ps我已经吸取了教训,不保留更改而不提交它们很长时间。我将不胜感激任何帮助。
答案 0 :(得分:1)
是的,不保留未提交的更改确实是一个宝贵的教训。在执行重要操作之前,请始终查看未提交的更改,并确定是要提交还是放弃它们。 (设置好的提示将帮助您识别工作区是否脏了。)
您提交的所有内容都是保存,并且可以随时恢复。棘手的部分是识别你想要的提交。
通常有两种方法:git log
和git reflog
。
使用git log
,您可以列出分支的官方历史记录。只要你偶尔承诺你的工作就足够了。但是,如果您通过修改或重新定位来更改历史记录,则显然将无法再在正常git log
中看到已废弃的版本。
这就是git reflog
派上用场的地方。这将记录您执行的所有操作以及您的操作导致的提交ID。只需输入git reflog
,您就会获得应该识别的操作列表。时间从下到上。提交一些东西,然后你会得到一个新的条目。
如果要恢复旧版本,只需扫描所需条目的列表,然后使用git reset
进行时间扭曲。 :)