如何将我的 branchA 的 branchB 合并到 Git 中的 Master 中?

问题描述

我确实有这个:

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

我想要的是将我从 BranchA 和 BranchB 的更改集成到 Master 中。我通常喜欢 rebase,但我不认为这是一个好主意,因为我的更改是在公共存储库中,特别是 commit H 是别人的工作。

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

编辑:

master 有变化,因为这是一个团队项目。

解决方法

只需检查 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

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

,

这主要取决于您与其他维护者之间的工作流程。

为了实现您的目标,是的,您可以简单地将分支 A 和 B 一个接一个地合并到 master 中。

除非...您遵循某种形式的 git flow,其中您的 BranchA 是您的发布分支,并且您需要将其合并到 masterBranchB,但是鉴于您的图表和问题,我假设这不是您遵循的确切约定。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...