我们有一个网络应用程序,我们有几个企业客户。我们最近决定将其作为SaaS应用程序提供,并遵循精益方法(与我们的公司产品并行)。这意味着我们在旅途中进行了可能无法投入生产的实验。
在我们精益求精之前,我们对以下分支策略感到满意(我相信它非常标准):
现在我们除了上述内容之外还有以下内容,而且效果不佳:
我们现在的情况是,我们需要快速而且经常按照精益方法的要求发布,当我们对任意事物得到可靠的反馈时,我们需要生成它并尽快释放它(从lean_release_branch开始)
问题是我们无法创建 dev 的功能分支(因为它很可能不稳定)而且我们无法创建 lean_release_branch 有两个原因:
有没有人知道我们的设置有更好的策略?
答案 0 :(得分:2)
除了GitFlow nozari提到,还有GitHub Flow。我工作的地方用作基础(主人总是稳定的,在特征分支中发展,在合并之前通过审查拉取请求)。我们比GitHub更少经常部署,所以在master上我们使用annotated tags来跟踪版本,轻量级标签指向现在正在进行暂存/生产的任何提交。这由capistrano-deploytags Ruby gem管理。
除非我错误地阅读您的问题,否则您可以通过此策略实现相同的目标,并且所有这些分支的复杂性都会降低。
答案 1 :(得分:0)
我刚刚从TFS更改为GIT,我遵循的模型基于此post。
关于你的实验,它只是“特色分支”,不会让它重新开发(合并到开发中)。
答案 2 :(得分:0)
因为 major_release_x 中的所有内容都已在 dev 中(因为 dev 已合并到 master 之前发布)生产功能(成功实验后)可以在 major_release_x 的功能分支上完成,称之为 production_feature_y ,然后合并到 dev ,进入下一个主要版本, lean_release_branch 。
这样,您的精益版本中就可以使用新的生产功能,并且将在下一个主要版本中使用,精益分支永远不需要再次合并。
有关该功能的更多客户反馈可以在 production_feature_y 上实施,并再次合并到 dev 和 lean_release_branch 。
错误修复可以通过相同的方式处理,在 major_release_x 的分支上完成,并合并到 major_release_x 和 lean_release_branch 。