- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在 Windows 上使用 Git Gui 和 Gitk。如何撤消过去两个小时内的硬重置?
(是否可以在不使用命令行的情况下从这些应用程序执行此操作?)
我看到了this SO post ,它表示在 git 的垃圾收集发生之前可以撤消。我可能已经退出并重新打开了其中一个或两个应用程序。
最佳答案
如果您在执行 git reset --hard 时未提交工作树中的更改,那么这些更改将永远消失。你必须使用你的内存(在你的脑海中)来重新创造它们。
在您切换到的提交之后提交的更改不会丢失。他们可能没有指向他们的引用,使他们更难定位。列出对存储库的所有低级更改的工具是 git reflog
。找到要还原的提交后,观察第一行的哈希值,然后使用 git reset --hard #hashnumber
或 git checkout #hashnumber
获取变化。我在 http://quirkygba.blogspot.com/2008/11/recovering-history-with-git-reflog.html 上找到了这条有用的线路:
gitk --all $(git reflog | cut -c1-7)
这将显示 gitk 中所有 stash 的更改,您可以在其中轻松查看、指向、单击和创建新分支。
正如您提到的,未引用的提交通常会在存储库中保留 30 天。
编辑:我必须在此处添加内容,以便我的编辑至少有 6 个字符。我知道,有时代码修复少于 6 个字符,但毕竟本文可能还有其他需要改进的地方。
关于windows - 如何在 Windows 上的 Git Gui 或 Gitk 中撤消硬重置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3843260/
我是一名优秀的程序员,十分优秀!