Gitflow具有多个主分支

Buv*_*inJ 9 git version-control git-flow

虽然这类似于具有多个并行释放分支的线程Git-flow和master,以及在多个主分支上使用git的最佳方法是什么?,它不完全相同......我确实发现这个很相似:具有相同GIT主控的多个项目,但我想讨论我的具体用例......

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

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

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

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

从主分支,我可以创建"服务器版本"和"本地版本"分支吗?

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

mvd*_*mvd 5

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

我可以从master分支创建“服务器发行版”和“本地发行版”分支吗?

在gitflow中,您实际上是从develop分支发布的!但是,如果它们处于不同的发布周期,则不会阻止您为每个产品创建发布分支。然后,您可以自由地将发行分支合并到自己的开发分支和主分支中。唯一的问题是,您可能需要在master分支上具有两种不同的标签样式,以便可以看到每种产品在其发布周期中所处的位置。为了使标签保持相同的格式,您可能有两个主分支(每个产品一个),当相应产品的功能完成时,您将分别合并到其中。