Gitflow具有多个主分支

时间:2015-08-31 19:21:02

标签: git version-control git-flow

虽然这与线程Git-flow and master with multiple parallel release-branchesWhat's best way to work with git on multiple master branch?类似,但它并不完全相同......我确实觉得这个很相似:Multiple projects with same GIT master,但我想讨论我的具体用例...

我所在的公司正在为我们的Git工作流程制定政策和程序。我们想要使用" Gitflow"文章http://nvie.com/posts/a-successful-git-branching-model/或文章中描述的模型 https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow并且在关于此事的许多讨论中经常被引用。

但是,我们有一个用例,我无法找到记录的解决方案。如果您的项目用于生产多个最终产品怎么办?因此,主分支不能代表"释放点"好像它是一个单一的产品。似乎主人可能需要备用分支?那么多个并行发布分支?

例如,如果项目充当了可能具有不同皮肤,风格或变体的主干或引擎,但您希望将每个完整的最终产品存储在一个存储库中,该怎么办?

在我的特定场景中,我有一个在Linux服务器上运行的程序,但它也作为本地Windows应用程序分发。在这些不同的版本中,项目的大块可能包含也可能不包含在一个或另一个版本中。例如,如果repo仅用于服务器,则服务器上的库不需要包含,但必须包含在本地分发中,否则它们将不存在。我想在特定的发布点将repo的更新提取到服务器上,但是省略了那些不属于那里的部分。

从主分支机构,我是否会创建一个"服务器版本"和#34;本地发布"科?

然后开发分支(及其功能)将从何而来?我不想要多个开发分支,每个分支都来自它自己的发布,因为代码开发实际上99%适用于这两个分支。我是否需要将单个dev分支合并为一个然后另一个版本?

1 个答案:

答案 0 :(得分:4)

如果两个产品之间共享99%的代码,您可以轻松共享同一个存储库。只要两个产品处于同一个发布周期,例如版本2.0同时发布,您就可以拥有一个发布/开发/主分支。

  

从主分支机构,我会创建“服务器版本”和“本地版本”分支吗?

在gitflow中,你实际上是从开发分支发布!但是在它们处于不同的发布周期的情况下,没有什么能阻止您为每个产品创建一个发布分支。然后,当他们按照自己的时间完成时,您可以自由地将发布分支合并到开发分支和主分支中。这里唯一的事情是您可能需要在主分支上有两种不同类型的标记,以便您可以看到每个产品在其发布周期中的位置。或者为了使标签保持相同的格式,您可以有两个主分支(每个产品一个),当您为相应的产品完成功能时,您将分别合并。