我正在处理一个特性分支场景,我有点不确定作为"最佳解决方案">
a -- b -- c <-- Master
d -- e -- f <-- Branch 1 (in review)
d -- e -- f -- g -- h <-- Branch 2
我开始处理Branch 1
,完成了完整的实现,并打开了pull请求。但是,我需要创建Branch 2
来开始特性实现的第二部分。
a -- b -- c x <-- Master
/
d -- e -- f <-- Branch 1 (Merged in Master)
d -- e -- f -- g -- h <-- Branch 2
据此,Branch 1
被CI合并到Master分支中。问题是Branch 2
从Branch 1
加载所有更改,我不知道用哪种方式将Master更改合并到我的Branch 2
中。
互动返利还是合并?
非交互重基础应该足够
首先,确保您的本地master
是最新的";upstream
"/master
(upstream
是目标存储库的远程引用,您的PR是在这里合并的(
git switch master
git fetch upstream
git merge upstream/master
然后,在branch1
启动后重播每个branch2
提交,并在更新的master
上重播它们。
git merge-base branch1 branch2
应该为您提交branch1
的d
git rebase --onto master $(git merge-base branch1 branch2) branch2
这样,你就可以得到:
d' -- e' -- f' -- g' -- h' <-- Branch 2
/
a -- b -- c x <-- Master
/
d -- e -- f <-- Branch 1 (Merged in Master)