为多个客户管理多个git发布分支

Ras*_*ard 8 git branch

我公司有一个软件,我们销售给多个客户.但每个客户都有一些不同的要求(不仅仅是"将我们的徽标放在这里").所有这些核心都是相同的,但有些不需要某些模块,其他需要它们包括修改.

我想在一个git存储库中管理所有这些,所以我对它们都有相同的核心,但我不太确定如何以最好的方式做到这一点.

我读到了Git Flow,以及如何使单个项目成功实现分支,这给出了这样的分支模型:

http://nvie.com/img/git-model@2x.png

现在,我们有多个客户,因此,多release分支(release-customer1-v1.2,release-customer2-v3.8,...),但它们都建立在同一个master分支.

有没有策略来管理这种混乱?

Ani*_*pis 2

我认为一个简单而可行的解决方案可能是为每个客户设立分支机构develop。release

编辑:以前在前面的句子中develop被称为,但我更喜欢开发更好master


  • 所有常见的东西都将存在于共享develop分支中
  • 每个客户都有自己的develop分支机构release

您必须格外小心地进行影响共享中所有客户的更改develop以及仅影响其各自分支机构中的特定客户的更改。


场景一

您为客户 A开发功能 A,为客户 B开发功能B。

如果这些功能不共享代码,则应将它们保留在各自的develop-*分支中,例如,功能 A将在其中开发develop-customer-A,功能 B将在develop-customer-B

如果这些功能共享代码,则应在共享部分develop和特定于各自分支机构的客户的部分上开发共享部分develop-*