修正共享功能分支的Git工作流程?

我正试图找出适合这种情况的正确工作流程:

在共享回购中,我们有这些分支:

-master
-feature

功能分支是一个共享分支,因为许多开发人员正在共同开发新功能。 他们正在积极推动他们对功能分支的改变。

我试图避免那个功能最终被重新合并到主人那一天的'冲突地狱'。 目前,我看到一些选择:

1) 主动合并主要功能,并经常做。 然而,这不是在git文档中推荐的,我开始明白为什么。 当我尝试这个时,我似乎一遍又一遍地解决了同样的冲突。

2) 以某种方式使用rebase。 我已经读过这个,但它看起来不会工作,因为功能分支实际上是共享的。 所需要的只是一个开发人员进行2次rebase,而其他开发人员可能会因不匹配的历史记录而产生冲突。

3) 将特性分支转变为一个集成分支,让开发人员使用他们自己的独立功能分支和分派来保持事物的健全。

4)完全不同的东西?


对于共享分支,我会选择#3,并将其用作“集成”分支来巩固其工作。
开发商将不得不使用底垫中不断重播他们的private之上分支feature合并回到他们的工作之前feature ,这样,它们分别是:

  • 在本地解决任何合并冲突(在他们自己的回购中)
  • 使得最终的合并(从他们的private分支到feature )变得微不足道(通常是快进)
  • (如“ git rebase vs. merge ”中所述)

    我们的想法是,一旦feature分公司在合并master ,没有更多的贡献是公认的feature (分支被“冻结”),您可以安全地变基其上的顶级master或直接将其合并到master
    然后开始一个新的feature分支(如果需要,它可以实际上并行启动前一个feature分支)


    您可以使用rerere来处理多次看到的合并冲突。


    (我不太热衷于选项1,2或3,所以我试图找到一个更好的工作流程;因此我在下面描述我是如何处理问题的,希望有人会告诉我)

  • 使用其中一个git修补程序队列工具在修补程序队列中转入功能分支。
  • 使用单独的git存储库来版本控制修补程序队列
  • 使用常用的git方法在修补程序队列上进行协作。
  • 人们可以明智地将修补程序队列返回到本地的功能分支。

    链接地址: http://www.djcxy.com/p/49269.html

    上一篇: Correct Git workflow for shared feature branch?

    下一篇: Describe your workflow of using version control (VCS or DVCS)