我有两个本地git分支跟踪两个远程svn分支。
我的设置方式是master正在跟踪svn trunk并且'branch'跟踪了svn'branch'。
最近我在当地的“分支机构”做了一些本地工作,由于我加入了速度
git svn rebase -i HEAD~2
而不是
git rebase -i HEAD~2。
执行两次本地提交后,在命令行中然后,git做了一些奇怪的事情,它从svn trunk获取并重新提交了我的本地“分支”。当我回到master并尝试git svn rebase时,那些合并到'branch'的提交在master树中丢失了。这意味着不仅两个分支之间的合并被破坏,而且基本上我不能在master上工作,因为它不与trunk同步。有没有办法解决这种情况?
答案 0 :(得分:0)
您可以使用reflog撤消rebase。使用git reflog
查找分支在运行rebase之前指向的提交。然后使用git reset --hard <COMMIT-ID>
将分支切换回来。
警告:
在执行此操作之前,请注意git stash
任何本地更改(否则它们将会消失)。此外,如果您在拙劣的rebase之后进行了其他提交,则必须手动拯救它们(可能使用git cherry-pick
)。