2

我有两个本地 git 分支跟踪两个远程 svn 分支。

我以 master 跟踪 svn 主干和 'branch' 跟踪 svn 'branch' 的方式进行了这些设置。

最近我在当地的“分支机构”做一些当地的工作,由于速度我进入

git svn rebase -i HEAD~2

代替

git rebase -i HEAD~2。

在进行两次本地提交后的命令行中

然后 git 做了一些奇怪的事情,它从 svn trunk 获取并重新定位提交到我的本地“分支”。当我回到 master 并尝试 git svn rebase 时,那些合并到“分支”中的提交从 master 树中丢失了。这意味着不仅两个分支之间的合并被破坏,而且基本上我无法在 master 上工作,因为它与主干不同步。有没有办法补救这种情况?

4

1 回答 1

0

您可以使用 reflog 撤消变基。用于git reflog在运行 rebase 之前查找分支指向的提交。然后使用git reset --hard <COMMIT-ID>将分支切换回来。

警告:

在执行此操作之前请注意git stash任何本地更改(否则它们将消失)。此外,如果您在拙劣的 rebase 之后进行了其他提交,您将不得不手动拯救它们(可能使用git cherry-pick)。

于 2013-08-27T21:34:40.870 回答