首页 > 解决方案 > git rebase 无事可做

问题描述

我有以下提交,以及 master 和其他 2 个分支(b1 和 b2):

m1 - a1 - b1
^    ^    ^ 
|    |    branch b
|    branch a
master

我想重新设置 b 分支,使其父级为 master:

 / - a1
m1
 \ - b1

如果我做git rebase mastergit rebase origin/master,我得到Current branch b is up to date。这似乎是错误的,但我认为这与 b 在某些方面已经植根于 master 的事实有关。我必须使用 --onto 似乎也是错误的。

标签: gitrebase

解决方案


老实说,在这种情况下,您可以将提交挑选b1到来自以下的新分支master

# from b
git reset --hard master
git cherry-pick b1

如果您想使用变基选项,请使用--onto

# from b
git rebase --onto m1 a1

上面说要重新设置b分支,以便其父a1提交(只是b1提交)的提交现在应该位于一个的基础上,特别是 commit m1


推荐阅读