如何在Windows上撤消Git Gui或Gitk中的硬重置?
我在Windows上使用GitGUI和Gitk。如何撤销过去两小时内的硬重置 (是否可以在不使用命令行的情况下从这些应用程序执行此操作?)如何在Windows上撤消Git Gui或Gitk中的硬重置?,windows,git,gitk,git-gui,Windows,Git,Gitk,Git Gui,我在Windows上使用GitGUI和Gitk。如何撤销过去两小时内的硬重置 (是否可以在不使用命令行的情况下从这些应用程序执行此操作?) 我看到了,这说明在git的垃圾收集发生之前,撤销是可能的。我可能已经退出并重新打开了其中一个或两个应用程序。我不认为您可以撤消硬重置以恢复未提交的更改-您可以撤消重新基址,因为blob仍然可用,但是如果您从未将最新更改提交到Git,那么它重写的任何内容都很可能是历史。我很想知道我错了 请参见问题链接中Brian Riehman和Pat Notz的答案 一种解
我看到了,这说明在git的垃圾收集发生之前,撤销是可能的。我可能已经退出并重新打开了其中一个或两个应用程序。我不认为您可以撤消硬重置以恢复未提交的更改-您可以撤消重新基址,因为blob仍然可用,但是如果您从未将最新更改提交到Git,那么它重写的任何内容都很可能是历史。我很想知道我错了 请参见问题链接中Brian Riehman和Pat Notz的答案 一种解决方案是使用命令行 在Windows中,在包含
.git
目录的目录中打开DOS
键入类似于以下内容的内容,以查看要转到的提交:
"c:\Program Files\Git\bin\git.exe" reflog
要转到某个提交,请键入以下内容,其中最后一个表达式是该提交的SHA1代码:
"c:\Program Files\Git\bin\git.exe" reset --hard 5eb4080
git reflog
。
找到要还原的提交以观察第一行中的哈希数,然后使用git reset--hard#hashnumber
或git checkout#hashnumber
获取更改。
我发现这句话很有用:
gitk——全部美元(git reflog | cut-c1-7)
这将在gitk中显示所有隐藏的更改,在这里您可以轻松地查看、指向、单击并创建新分支
正如您提到的,未引用的提交通常在存储库中保存30天
编辑:我必须在这里添加内容,以便我的编辑至少为6个字符。我知道,有时代码修复少于6个字符,但毕竟,在这篇文章中可能还有其他需要改进的地方。我在前一天对提交进行了硬重置。我能收回那些后续的提交吗?这实际上是一个通用的git问题,解决方案也很通用。由于这个问题与windows无关,我认为您应该删除windows标记。