虽然这与线程Git-flow and master with multiple parallel release-branches和What's best way to work with git on multiple master branch?类似,但它并不完全相同......我确实发现这个很类似:Multiple projects with same GIT master,但我想讨论一下我的具体用例......带有多个主分支的Gitflow
我工作的公司正在为我们的Git工作流程建立政策和程序。我们想要使用文章http://nvie.com/posts/a-successful-git-branching-model/或 https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow中描述的“Gitflow”模型,并在有关此问题的许多讨论中经常参考。
然而,我们有一个使用案例,其中我找不到一个解决方案的要求。如果您的项目用于生产多个最终产品会怎样?因此,主分支不能像“单一产品”那样表示“发布点”。看来主人可能需要替代分支?那么多个并行发布分支?
例如,如果项目是骨干或引擎,可能会有不同的皮肤,味道或变体,但您希望将每个完整的最终产品存储在一个存储库中?
在我的特殊场景中,我有一个运行在Linux服务器上的程序,但它也是作为本地Windows应用程序分发的。在这些不同的版本中,项目的大块可能包含或不包含在一个或其他版本中。举例来说,如果回购仅用于服务器,则不需要包含服务器上的库,但是必须将其包含在本地分发中,否则它们不存在。我想在特定发布点将更新推送到服务器上,但省略不属于此类的那些部分。
从master分支,我会创建一个“Server Release”和“Local Release”分支吗?
开发分支(和它的功能)从哪里脱落?我不想要多个开发分支,每个分支都来自它自己的版本,因为代码开发事实上99%都适用于这两者。我是否需要将一个开发分支合并为一个,然后是另一个版本?
我同意。如果代码大致相同,则有一个存储库,并且只需将不同的部署脚本/工具(例如'ant'files)添加到此存储库中。 Git-Flow应该在这里工作。 – mstrap
谢谢mvd。这有帮助。我仍然在学习这种分支模型,并且通过查看次要来源,我显然被误导入Gitflow。看看主要来源,我看到了发布分支是如何暂时的,而不是发展。我虽然释放了一个永久的中间人,最初来自主人,然后开发者来自那里。结果,我提出的解决方案很糟糕。我喜欢2主分支的想法。这与我的真正意思相似。我现在正在和这里的团队交谈。如果我们实施你的计划,我会除了这个答案。 – BuvinJ
还有其他模式,发布分支是长寿的。工作从开发开始,并入主(一旦它被认为足够稳定以便测试),并且当.0标签被标记时发布分支从主分支分支。不要觉得你必须用git-flow去,因为它很受欢迎!你有一个独特的情况,最后你应该选择一个最适合你公司的策略。 – mvd