重置后,恢复已提交但未推送的分支

时间:2015-01-14 11:50:31

标签: git tortoisegit

我从一个已被推送的提交(称为提交A)开始一个新的分支,然后继续进行更改并向该新分支(称为B,C和D)提交三次而不推送。然后我发现了一个我无法立即看到来源的错误,我决定回去提交A以查看该错误是否在那时出现。

我正在使用TortoiseGit,所以我找到了提交A并右键单击它。我现在知道,暂时使用该项目的正确命令就是" Switch / Checkout",但我错误地选择了#34;重置[分支名称]到这个" ;

值得庆幸的是,我做了一个混合重置而不是一个硬重置,这意味着我仍然在我的工作目录中的提交B,C和D中实现了更改。在实现我的错误后,我承诺并推动这些以确保安全。

在TortoiseGit日志中,提交A,B和C不再可见。它不是世界末日,因为我所取得的进展已经缩减为我在重置后所做的一次提交。但是,我仍然希望恢复这些提交,因为它们比一个大而且具有描述性消息更具增量。有可能吗?

我对git相当新,到目前为止只使用了TortoiseGit界面。我更喜欢使用它的解决方案,但如有必要,将使用命令行。非常感谢。

3 个答案:

答案 0 :(得分:2)

谈到命令,git reflog将允许您找到丢失的提交的SHA,然后您可以执行git branch <name of the ressurected branch> <SHA of the last commit lost>

之类的操作

答案 1 :(得分:1)

是否使用&#39; Reflog&#39;。要在TortoiseGit中执行此操作,请在目录中右键单击(您必须按住shift才能获得扩展菜单)。转到TortoiseGit - &gt;将显示Show Reflog和所有先前的提交。从那里我可以切换到我失去的分支。

感谢那些告诉我有关reflog的人。

答案 2 :(得分:0)

您的情况:

enter image description here

enter image description here

显示RefLog

enter image description here

通过

使D可见
  1. 显示日志+创建分支
  2. 直接创建分支
  3. 开关/结帐
  4. (创建标签......)
  5. enter image description here

    日志

    enter image description here