GIT工作流程标准以处理开发分支中的多个项目



因此,这是我们组织中当前的问题。我们有一个小型团队同时在多个项目中工作。

我们有一个简单的工作流程,我们有一个开发和主分支,其中dev是当前中的QA和Master中的DEV是当前正在生产(或准备生产的产品)。但是,当我们遇到3个特征QA时,这会带来问题,而其中只有一个可以开始生产,而其他人则没有。

这将使我们樱桃从该功能到掌握的所有提交都会挑选出大师,如果该项目跨越了数周的开发,这很容易出错。我们只能在QA中对DEV进行全面测试时将功能发送到DEV,但有时我们需要同时具有多个功能。

是否有标准的GIT工作流程更适合处理这些情况?我在此博客上阅读了一个解决方案,建议为每个项目创建开发分支,但这并不能解决我们必须同时拥有多个项目的情况:

https://blog.logrocket.com/the-git-workflow-you-need-how-to-deal-with-multiple-teams-in-a-a-a-single-repository-repository-repository-faf5bb17a6e4

Div>

更新 - 更改了问题以表明问题与多个功能的状态有关,而不是最初所述的多个项目。原始答案在下面保留。


有许多相互竞争的工作流程适合不同的团队/项目。一个相当流行的工作流程是gitflow。它可能更适合大型项目,因为它似乎对小型/简单的项目过于杀伤,但是再次有适当的工具支持。

在gitflow中, master是"已发布的内容",而 develop是'现在可能会发布的,如果我们现在发布发布' - 因此,您不会将功能合并到develop之前QA测试。

这确实提出了有关如何执行最佳测试的问题。显然,在发行之前/之前,您需要在功能合并后测试develop版本,并且这些测试可能会失败,并且您必须保留BugFix的版本,或者滚动一个或多个功能。目标是最大程度地减少发生的频率。

使用良好的基础架构,当您准备测试该功能时,您可以将给定的功能分支部署到QA环境中。为了获得最佳的测试,您可以在测试前合并到该功能中(可能是在此之后取消合并),也可以在测试前将功能反复为develop(如果您不介意通常会重写特征分支)。因此,如果"所有内容可释放加上此附加功能"通过测试,那么一个附加功能就会变成"可发布的东西",您可以将其合并到develop

实际上,我看到的大多数项目都以某种方式妥协,依赖于特征不会彼此干扰的假设(当然,这是过度乐观的,但在大多数情况下仍然可以解决)。


GIT的标准是将每个项目放在其自身的存储库中(尽管有MonorePos'的近期 - 和IMO误导 - 趋势)。您描述的情况是为什么的一个很好的例子。

这并不是说您无法制定某种分支策略,这些分支策略可以从一个仓库中获得相同的效果'每个都包含自己独特的分支集,在"一个repo"中。

最新更新