如何合并(或改组)两个分支在特殊情况下发展

时间:2017-07-17 21:19:56

标签: git merge repository git-branch branching-and-merging

我目前的树状态如下:

                Q-W-E (Br2)
               /
----A-B-C-D-E-F-G-H (develop)
       \
        X-Y-Z (Br1) 

现在,我需要将这两个分支合并到develop(换句话说,develop应该包含两个新功能(分支Br1Br2))。

问题是在合并Br2之前我应该​​合并Br1。原因是:Br1包含分支Br2上的功能所需的一些代码(Br2上的功能几乎已完成 - 我需要添加一个小的commmit,它将使用{ {1}},必须调用一个函数 - 此函数在分支Br1上实现。

此外,与Br1相比,两个分支都不新鲜。

我一步一步请求帮助(即使是确切的命令),因为我是git的新手,我知道很容易犯错误。显然,我有一些经验,我知道合并,变基,提交等等,但是这种经验太差,无法在存储库上进行实验。

1 个答案:

答案 0 :(得分:1)

让我们从树开始:

                Q-W-R (Br2)
               /
----A-B-C-D-E-F-G-H (develop)
       \
        X-Y-Z (Br1) 

(我将第二个E重命名为R)。

简单明了的合并方式是:

  1. 备份您的存储库(无论如何都要进行常规备份,对吗?)

  2. git checkout develop

  3. git merge Br1

  4. 3A。如果存在合并冲突 - 解析,添加并提交以完成合并。

                        Q-W-R (Br2)
                       /
        ----A-B-C-D-E-F-G-H-M1 (develop)
               \           /       ^
                X-Y-Z (Br1)       HEAD
    
    1. git merge Br2
    2. 4A。如果存在合并冲突 - 解析,添加并提交以完成合并。

                      Q-W-R (Br2)
                     /      \
      ----A-B-C-D-E-F-G-H-M1-M2 (develop)
             \           /          ^
              X-Y-Z (Br1)          HEAD