2012-02-14 76 views
1

我正在与一个中等规模的团队合作开发Web应用程序。我们正在使用Git进行版本控制/共同编写此项目。在我的同事和我之间,我认为我们即将遇到困难的合并,我想看看在遇到麻烦之前我们能做得更好。如何避免合并与多分支合并冲突?

我们主要是在Git中工作的发展分支:

D-E-F-G 

我的同事创建了一个分支上的一个大的变化工作:

 A 
    /
D-E-F-G 

然后我把该分支下,修正了一些错误在里面,我即将把它合并的同时,我的同事开始了的其他特征的新的分支:

 A-B-C-D 
    /
D-E-F-G-H-I-J 
     \ 
     A-B-C 

现在,我需要创建一个新功能,使用来自同事新分支的样式,但是他的新分支需要更多工作才能合并回开发中,因此我将分支从分支中分支出来利用他的风格,并有当他的东西被合并回来洽看:

 A-B-C-D 
    /
D-E-F-G-H-I-J 
     \ 
     A-B-C.. 
      \ 
      A 

但是,我们确实也需要一定的他在他的其他分支开发的风格,所以我想重订基期的发展一旦我们将他的另一个分支合并到开发中,就立即进入我的分支:

 branch 1: A-B-C-D 
      /  \ 
develop: D-E-F-G-H-I-J.. 
       \  \ 
     branch 2: A-B-C..\ 
         \ \ 
       branch 3: A-B.. 

这样,我需要处理的分支将有我需要从他的两个分支机构获得e代码,但将从开发中重新启动以有希望减少冲突。我担心的是,当他试图将分支2合并到开发中时,他可能遇到很多问题。他会有很多冲突吗?有什么更好的,我们可以做?

回答

2

对于这个答案,我会假设你的说明了两两件事:

  • develop是准备部署的分支,它可以接收错误修正提交,并部署(或释放)任何时间(如果你不不要这样做,我强烈建议你这样做:P)。
  • 您只有两位开发人员开发功能。所以,你不会在develop分支上有重要的功能。

所以,我建议你创建一个名为feature-integration分支,是重建基础与develop每天(或当你对develop分支的变化)。然后,当你的同事完成他的大部分工作时,他可以将他的代码合并到feature-integration分支中,并且可以将其用于开发重定向feature-integration上的工作分支上。你(以及你的同事)也应该保留你的工作分支代码重新定期(我建议每天或至少每周)与feature-integration基础上保持你的代码更新,并在开发过程中解决一些最终的冲突,所以你不应该当你决定合并到develop时,会产生一个痛苦的合并。

0

您遇到的问题是通过合并您引入您想要的更改以及您不想要的更改。

使您的功能更小。

从一个共同点开始你的功能 - 不管它起初有多笨拙。

使用rerere使沉浸变得更容易。

这是在我的分支每个功能后总结:

http://dymitruk.com/blog/2012/02/05/branch-per-feature/