将分支变基或合并到合并到 master 中的另一个功能分支
Rebase or merge a branch onto another feature branch merged in master
我有一个正在处理的功能分支方案,我有点不确定哪种方式是“最佳解决方案”。
a -- b -- c <-- Master
\
d -- e -- f <-- Branch 1 (in review)
\
d -- e -- f -- g -- h <-- Branch 2
我开始 Branch 1
的工作,完成了完整的实现,并打开了拉取请求。但是,我需要创建 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
加载了所有更改,我不知道如何将主更改合并到我的 Branch 2
.
交互式变基或合并?
Non-interractive rebase 应该足够了
首先,确保您的本地 master
是 up-to-date 和“upstream
”/master
(upstream
是引用目标存储库的远程,你的 PR 被合并的地方)
git switch master
git fetch upstream
git merge upstream/master
然后在 branch1
开始后重播每个 branch2
提交,并在更新的 master
.
之上重播它们
一个 git merge-base branch1 branch2
应该给你提交 d
of branch1
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)
我有一个正在处理的功能分支方案,我有点不确定哪种方式是“最佳解决方案”。
a -- b -- c <-- Master
\
d -- e -- f <-- Branch 1 (in review)
\
d -- e -- f -- g -- h <-- Branch 2
我开始 Branch 1
的工作,完成了完整的实现,并打开了拉取请求。但是,我需要创建 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
加载了所有更改,我不知道如何将主更改合并到我的 Branch 2
.
交互式变基或合并?
Non-interractive rebase 应该足够了
首先,确保您的本地 master
是 up-to-date 和“upstream
”/master
(upstream
是引用目标存储库的远程,你的 PR 被合并的地方)
git switch master
git fetch upstream
git merge upstream/master
然后在 branch1
开始后重播每个 branch2
提交,并在更新的 master
.
一个 git merge-base branch1 branch2
应该给你提交 d
of branch1
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)