git 如何重定从不在master中的特征分支创建的特征分支的基?

jexiocij  于 12个月前  发布在  Git
关注(0)|答案(2)|浏览(162)

我有以下结构

A -> B -> G -> H  (master)
     |
     C -> D -> I  (F1)
          |
          E -> F  (F2)

字符串
现在F1已经被合并到主和压扁,我也拉在所以我有以下

A -> B -> G -> H -> CDI  (master)
     |
     C -> D -> E -> F    (F2)


现在我想要的是

A -> B -> G -> H -> CDI      (master)
                     |
                     E -> F  (F2)


我该怎么做?

vhipe2zx

vhipe2zx1#

git rebase --onto master F2~2 F2

字符串
这会从名为F2的分支中抓取最后两个提交(~2),并将它们复制到master的tip提交中。

jjjwad0x

jjjwad0x2#

git rebase --onto master D F2

字符串

git rebase --onto master F2~2 F2


您可以从git rebase --onto上的this tutorial了解这一点。
在做这种棘手的事情时,我喜欢为我正在操作的分支的头部创建标记,这样我就可以很容易地撤销错误。
比如说,

git switch F2
git tag f2
git rebase --onto master D F2

# Check result here...

# Optionally undo what we did.
git switch F2
git reset --hard f2

# Clean up.
git tag -d f2

相关问题