我正在尝试为 Web 应用程序项目确定最佳分支策略。这是我到目前为止的想法,我将非常感谢任何评论和经验。
在我看来,有两种主要的分支策略:“按发布分支”和“按功能分支”。
“发布分支”:开发发生在主干上。当发布时间临近时,会为该发布创建一个分支。然后稳定/测试这个分支,最后发布一个版本。发布后,分支被合并回主干,同时保持发布分支处于活动状态以进行错误修复。是否应用了错误修复,然后将其合并到主干中(如果主干上的开发没有以其他方式使错误黯然失色)。新功能被添加到主干,不会影响发布分支。当新的发布时间临近时,也会创建一个新的发布分支
“按功能分支”:主干始终是“生产”主干(实时代码)。错误修正直接提交到主干。下一个版本的功能在功能分支中开发。错误修复不时合并到功能分支中。当发布时间到来时,特性分支被合并到主干中,生命周期继续。
现在我认为这两种策略之间最大的实际区别是“按发布”允许您维护软件的不同生产版本(当客户 A 有版本 1 和客户 B 版本 1.5 时,客户是付费客户)案子)。相比之下,使用“按功能”策略只能支持当前的生产版本(所有客户端都使用最新版本)。
由于在典型的Web 应用程序中,所有客户端都使用相同的“最新”版本(因为它们都访问相同的服务器),我认为“按功能”方法是最常用的。它消除了“跨层次结构”合并的需要,比如当一个错误修复必须应用于所有 3 个发布版本时。
所以我目前的状态是我应该使用“按功能分支”。如果重要的话,我的团队不是很熟练。