首页 > 解决方案 > 如何在 Git 中将 branchA 的 branchB 合并到 Master 中?

问题描述

我实际上有这个:

a -- b -- c                           <-- Master
           \
            d -- e                    <-- BranchA
                  \
                   f -- g -- H -- i   <-- BranchB

我想要的是将我从 BranchA 和 BranchB 的更改集成到 Master 中。我通常喜欢变基,但我认为这不是一个好主意,因为我的更改是在公共回购中,特别是,提交 H 是其他人的工作。

因此,如果我的假设是正确的,即合并更容易,我想知道,我是否需要将 Master 合并到 BranchA,然后将 BranchA 合并到 BranchB,然后再将 BranchB 合并回 Master,或者我可以节省一些时间并合并Master进入BranchB,然后将其全部合并回来?我知道这会留下混乱的提交历史,因此是我的上一段。

编辑:

由于这是一个团队项目,因此 master 有变化。

标签: gitgit-mergegit-rebasefeature-branch

解决方案


只需检查master并合并BranchB到其中,这会将所有更改合并到 master 中,因为BranchB包含来自BranchA.

a -- b -- c                           
           \
            d -- e                    <-- BranchA
                  \
                   f -- g -- H -- i   <-- Master, BranchB

由于这将导致快进合并,如果 没有更改master,您可能需要考虑--no-ff创建新提交的选项,明确告知分支手已合并。

a -- b -- c -------------------------- j  <-- Master
           \                          /
            d -- e                   /  <-- BranchA
                  \                 /
                   f -- g -- H -- i   <-- BranchB

根据您想要“告诉”历史的内容,您还可以先合并先合并BranchA,然后再合并BranchB

a -- b -- c -------j------------------ k  <-- Master
           \      /                   /
            d -- e                   /  <-- BranchA
                  \                 /
                   f -- g -- H -- i   <-- BranchB

在这三种情况下,合并的结果代码是相同的,只是历史不同。


推荐阅读