我在 Windows 上使用 Git Gui 和 Gitk。如何撤消过去两小时内的硬重置?
(是否可以在不使用命令行的情况下从这些应用程序执行此操作?)
I saw 这个帖子 https://stackoverflow.com/questions/5473/undoing-a-git-reset-hard-head1,它表示在 git 的垃圾收集发生之前可以进行撤消。我可能已退出并重新打开其中一个或两个应用程序。
如果您的工作树中有一些更改在您执行 git reset --hard 时未提交,那么这些更改将永远消失。你必须使用你的记忆(在你的头脑中)来重新创建它们。
在您切换到的提交之后提交的更改不会丢失。它们可能没有指向它们的参考资料,这使得它们更难以定位。列出对存储库的所有低级更改的工具是git reflog
。
找到要恢复的提交后,观察第一行中的哈希值并使用git reset --hard #hashnumber
or git checkout #hashnumber
以获得更改。
我发现这条有用的线路http://quirkygba.blogspot.com/2008/11/recovering-history-with-git-reflog.html http://quirkygba.blogspot.com/2008/11/recovering-history-with-git-reflog.html:
gitk --all $(git reflog | cut -c1-7)
这将显示 gitk 中所有隐藏的更改,您可以在其中轻松查看、指向、单击并创建新分支。
正如您提到的,未引用的提交通常会在存储库中保留 30 天。
编辑:我必须在这里添加内容,以便我的编辑至少有 6 个字符。我知道,有时代码修复是less少于 6 个字符,但这篇文章毕竟可能还有其他需要改进的地方。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)