Git:有没有可能在git重置后恢复我当地的非暂停变更(曾经上演过) - 硬盘?

时间:2018-05-31 05:53:49

标签: git git-stash git-extensions git-reset

我在本地分支中进行了一些更改,我使用git add -A添加了这些更改。 然后由于某些原因,我通过git reset取消了这些更改。 然后我打开GitExtensions并单击重置所有更改。 (我以某种方式假设它是重置选定的更改:/)

所以我最终失去了这些变化。 是否可以恢复这些变化,因为它们曾被添加过来?

这里的对话表明,如果他们曾经上演过,可以恢复这些变化。我怎么也找不到: need to undo "Reset Changes" action git extensions

如果更改一旦被隐藏,我找到了恢复的方法: how-to-recover-a-dropped-stash-in-git

这里的答案表明,如果没有提交,暂存或隐藏更改,则无法恢复更改: accidentally-reverted-to-master-lost-uncommitted-changes

1 个答案:

答案 0 :(得分:0)

是的,这是可能的,因为在您暂存文件时,文件的内容会添加到git存储库中。但是您不会恢复文件名,因为树对象仅在提交时创建。

Gitextensions中有一个“恢复丢失的对象”功能: https://git-extensions-documentation.readthedocs.io/en/latest/maintenance.html#recover-lost-objects

请注意,文档不是最新的,并且菜单项已被移动(现在位于“存储库”菜单中)。

Ps:我强烈建议您使用下一版本的开发版本来至少恢复您的文件,因为我已经改进了该功能,以便在特殊情况下更轻松地恢复文件。您可以在此处下载:https://ci.appveyor.com/project/gitextensions/gitextensions/branch/master/artifacts

  

然后我打开GitExtensions并点击重置所有更改。 (我以某种方式假设它是重置选定的更改:/)

“重置所选更改”是指右键单击所选文件或使用“r”键盘快捷键。