我有两个本地git分支来跟踪两个远程svn分支。
我设置的方式是master跟踪svn的主干,而“分支”跟踪svn的“分支”。
最近我在本地的“分支”上做了一些工作,由于速度的原因,我进入了
git svn rebase -i HEAD~2
而不是
git rebase -i HEAD~2.
在命令行中执行两次本地提交之后
然后git做了一些奇怪的事情,它从svn主干获取并重新定位提交到我的本地“分支”中。当我回到master,并尝试git svn rebase时,那些合并到'branch‘中的提交从master树中消失了。这意味着,不仅两个分支之间的合并被破坏,而且基本上我不能在master上工作,因为它不与主干同步。有没有办法纠正这种情况?
发布于 2013-08-28 05:34:41
您可以使用reflog撤消rebase。在运行rebase之前,使用git reflog查找分支指向的提交。然后使用git reset --hard <COMMIT-ID>切换回分支。
警告:
在执行此操作之前,请注意git stash任何本地更改(否则这些更改将会消失)。此外,如果您在笨拙的rebase之后进行了其他提交,您将不得不手动拯救它们(可能使用git cherry-pick)。
https://stackoverflow.com/questions/18475604
复制相似问题