【问题标题】:How do I merge my branchB of branchA into Master in Git?如何将我的分支分支合并到 Git 中的 Master 中?
【发布时间】:2021-06-06 08:46:53
【问题描述】:

我实际上有这个:

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

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

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

编辑:

因为这是一个团队项目,所以在 master 中有一些变化。

【问题讨论】:

  • 如果在master 过去的提交c 中有其他提交,将它们包含在图表中会很有帮助。

标签: git git-merge git-rebase feature-branch


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    只需检查master 并将BranchB 合并到其中,这会将所有更改合并到主文件中,因为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
    

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

    【讨论】:

    • 看我的编辑,master上有变化。对不起,我应该更清楚。
    • 在这种情况下,只有最后两个选项是可能的。我仍然会始终使用-no-ff 选项,并尽可能频繁地合并分支,因此如果功能 A 完成,请将其合并到 master 中。发生这种情况时,您可以将分支 B 重新设置为该结果。当多人在同一个分支工作时,这不是一个好习惯,考虑每个人都在自己的分支上工作,这也使得合并(和潜在的冲突)更小
    猜你喜欢
    • 2016-04-30
    • 2016-09-20
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-16
    • 2018-04-14
    相关资源
    最近更新 更多