首页 > 解决方案 > 撤消 git squash rebase

问题描述

我搞砸了将我的提交压缩成一个提交。

如果提交去了

NOTMINE -> MINE1 -> MINE2 -> MINE3 -> MINE4 -> MINE5

我试图将 MINE1-4 压缩为 MINE5,但最终将它们压缩为 NOTMINE。

我跑了git rebase -i HEAD~5,把它设置为选择 MINE5 并挤压 MINE1-4。

为了解决这个问题,我尝试git reflog并基于我跑了git reset --hard HEAD@{1},这看起来像壁球前的那一刻,但这没有效果。

有任何想法吗?

标签: git

解决方案


检查你的 reflog。

一行应该表明你的变基的开始:

<sha> HEAD@{xx} rebase (start): checkout <something>

(因为您要求git rebase -i HEAD~5<something>可能是一个明确的 sha1 ;
当您要求一个命名的 ref 时git rebase -i origin/master,日志会提到该名称)

该( )下面的行<sha> HEAD@{xx+1}是您要查找的提交。


推荐阅读