如何压缩分支中的提交并重新设置所有后代分支的基础?

时间:2020-04-21 17:55:04

标签: git github

之前

master:  o--o
             \
branch1:      1--2--3
                     \
branch2:              4--5--6

之后需要

master:  o--o
             \
branch1:      1'
               \
branch2:        4'--5'--6'

这是我的典型工作流程,在该工作流程中,我在branch2中处理依赖于branch1中功能的功能。当branch1成熟以供审核时,我将其压缩为一个提交,然后将branch2重新设置为基于新压缩的提交。

但是,在压缩branch1之后,branch1和branch2之间的派生点现在是主HEAD。 git rebase会尝试将{1..6}改组到1'上。

我知道我可以手动告诉git分支点,但是在这种情况下有没有一种实用的方法来找出分支点?

1 个答案:

答案 0 :(得分:0)

一种自动方式?您将采用以下两种方式之一:

  • 告诉git所压缩分支的先前分支位置是什么:

git rebase --onto squashed-branch old-non-squashed-branch-or-revision feature-branch

  • 告诉git您的功能分支有多少个修订版本。说它有5个修订版本:

git rebase --onto squashed-branch feature-branch~5 feature-branch