针对多个版本的Git分支策略

时间:2017-11-02 20:05:38

标签: git gitlab branching-and-merging

我的团队是GIT的新手(使用GitLab),我们正试图解决以下问题。

我有项目A,它有3个团队正在研究它。

第1组有一个Jan版本

第2组有3月发布

第3组有7月发布

我们有生产代码大师的想法。 我们正在努力解决的问题是,强制执行Team 2的所有Team 1的更改以及Team 3的所有Team 1和2的所有更改都是最好的方法。

我们有DevJan,DevMarch,DevJuly分支机构。但似乎没有好的方法可以让改变顺畅地向上游流动。

我们只是定期变换吗?如果您是团队1,请致力于所有3个分支机构? 在GIT的所有讨论中,我都没有找到类似的情况。

2 个答案:

答案 0 :(得分:0)

因为有问题的分支专门用于协作目的,所以我不会将它们作为工作流程的一部分。您可以定期将DevJan合并到DevMarch中,然后将DevMarch合并到DevJuly中。

该工作流程的缺点......第2和第3小组将吸收团队1在周期性块中的变化,这可能会放大合并头痛 - 但这是决定拥有三个并发的长期开发分支所固有的。缓解这种情况的最佳方法是使“周期性”合并非常频繁 - 可能是每天 - 这意味着您将获得大量的合并提交,将“早期发布”更改带入“后期发布”分支。虽然有些人不喜欢“额外”合并提交,但如果你使用功能分支(我建议你应该),那么dev分支将只是一系列的合并提交。

答案 1 :(得分:0)

好。你可以把它们放在1个回购中。

您可以productKey,提交当前七月项目中的所有来源,然后从git checkout -b Release/July提交,再次从三月提交,然后再提交git checkout -b Release/March,提交。 所以你将有一个像

这样的结构
git checkout -b Release/Jan

现在他们每个人都可以将自己的合并策略发布到他们自己的发布分支中, 并且你可以向上合并分支,请注意,虽然合并时可能会有很好的冲突,你需要从下面的分支“链接”所有内容。

----------- Release/July Team 3 \------- Release/March Team 2 \-------- Release/Jan Team 1 rebase可能会更好,如果你在分支之间有你无法合并的部分(例如db方案),并且必须严格要求合并。但无论如何,维护多个版本都很困难。