Git如何将我的branch分支合并到Master中?
How do I merge my branchB of branchA into Master in Git?
我实际上有这个:
a -- b -- c <-- Master
\
d -- e <-- BranchA
\
f -- g -- H -- i <-- BranchB
我想要的是将我从 BranchA 和 BranchB 所做的更改集成到 Master 中。我通常喜欢变基,但我认为这不是一个好主意,因为我的更改是在 public 回购中,特别是 commit H 是别人的工作。
所以如果我的合并更容易的假设是正确的,我想知道,我是否需要将 Master 合并到 BranchA,然后将 BranchA 合并到 BranchB,然后再将 BranchB 合并回 Master,或者我可以保存一些time 和 just 将 Master 合并到 BranchB,然后再合并回去?我知道这会留下混乱的提交历史,因此我上一段。
编辑:
由于这是一个团队项目,所以 master 发生了变化。
这主要取决于您与其他维护者之间的工作流程。
为了达到你的目的,是的,你可以简单地将分支 A 和 B 一个接一个地合并到 master 中。
除非...您正在遵循某种形式的 git flow,其中您的 BranchA
是您的发布分支,您需要它合并到 master
和 BranchB
,但鉴于您的图表和问题,我假设这不是您所遵循的确切约定。
只需检查 master
并将 BranchB
合并到其中,这会将所有更改合并到 master 中,因为 BranchB
包含来自 BranchA
.[=21= 的所有更改]
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 -- c <-- Master
\
d -- e <-- BranchA
\
f -- g -- H -- i <-- BranchB
我想要的是将我从 BranchA 和 BranchB 所做的更改集成到 Master 中。我通常喜欢变基,但我认为这不是一个好主意,因为我的更改是在 public 回购中,特别是 commit H 是别人的工作。
所以如果我的合并更容易的假设是正确的,我想知道,我是否需要将 Master 合并到 BranchA,然后将 BranchA 合并到 BranchB,然后再将 BranchB 合并回 Master,或者我可以保存一些time 和 just 将 Master 合并到 BranchB,然后再合并回去?我知道这会留下混乱的提交历史,因此我上一段。
编辑:
由于这是一个团队项目,所以 master 发生了变化。
这主要取决于您与其他维护者之间的工作流程。
为了达到你的目的,是的,你可以简单地将分支 A 和 B 一个接一个地合并到 master 中。
除非...您正在遵循某种形式的 git flow,其中您的 BranchA
是您的发布分支,您需要它合并到 master
和 BranchB
,但鉴于您的图表和问题,我假设这不是您所遵循的确切约定。
只需检查 master
并将 BranchB
合并到其中,这会将所有更改合并到 master 中,因为 BranchB
包含来自 BranchA
.[=21= 的所有更改]
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
在这三种情况下,合并的结果代码是相同的,只是历史不同。