App-Git版本管理

版本划分

  1. develop:开发版,连接开发服务器,测试维护

  2. release-年月日:内部试用版,连接内部试用服务器,运营维护

  3. master:正式版,连接正式服务器,运营维护

tag-年月日,用来方便产线版本追述

基本流程

  1. 开发测试在develop进行开发、测试、解bug、验证

  2. 开发测试完成之后,进行一次内部发布,产出是“release-年月日”

  3. 运营对“release-年月日”进行内部试用,这个阶段出现的bug直接在这个分支上修改和验证

  4. “release-年月日”验证完成后,可以根据情况决定是否对外发布。比如苹果iOS系统的对外发布频率是一年一次。不过其内部发布频率应该高于这个频率

  5. 需要对外发布的“release-年月日”转移到master,进行对外发布,同时打好相应的tag

  6. 如果线上版本发现bug,直接从master拉出相应的hotfix分支,进行修复、验证和打补丁

开发版

  • 主体分支是develop

  • 进行新特性开发,可以拉分支develop-taskxxx,完成后合并到develop。当然,根据具体情况,也可以不合并。

  • 进行bug修复,可以拉分支develop-bugxxx,完成后合并到develop。当然,根据具体情况,也可以不合并。

  • 测试以develop这个分支为测试对象。当然,如果需要,对单独的任务develop-taskxxx,bug修复develop-bugxxx,也是可以的

  • 连接开发环境,由测试负责维护、配置

  • 测试验证完成后,为了保证稳定,develop分支可以有“封板期”

  • 合并到develop之后,可以把分支develop-taskxxx,develop-bugxxx删除。当然,根据实际需要,也可以保留一段时间。

内部验证版

  • 主体分支是“release-年月日”
  • 一种方式是统一用“release”,然后用tag的方式做标记。不过这里有一种隐含意味是“只有一个内部验证版”,无法体现苹果那种“多次内部发布,一次对外发布”的情况
  • 每一个“release-年月日”,都是一个实际可以对外发布的“可用版本”,是否对外发布,取决于运营决策
  • 对于重大节点,比如“阿里的双11”,需要提前开发,内部验证好,至于正式对外发布,则要等到相应的时机。
  • 版本规划和开发,一般要提前于实际需求,这样才能做到“不打无准备之战”
  • 还有一种命名方式是“release-月日”,不带“年”信息,在跨年的时候可能会带来困扰,当然也隐含“版本只保留1年,超过1年的版本将清理的意思”。在大多数情况下,这样做也是合理的。
  • 连接内部验证环境,由运营负责维护、配置

  • 如果发现bug,可以拉分支“release-年月日-bugxxx”,开发完成和测试验证之后,合并到“release-年月日”

  • 对于需求变更,原则上不予执行。如果特殊需要,可以拉分支“release-年月日-taskxxx”,开发完成和测试验证之后,合并到“release-年月日”

  • 经过验证,并且运行稳定之后,根据需要将“release-年月日-bugxxx”,“release-年月日-taskxxx”的改动合并到develop分支(此时的develop可能已经领先很多,需要做增量合并),保证develop内容最新。当然,根据实际情况,也可以不合并。

  • 合并到“release-年月日”之后,可以删除相应的“release-年月日-bugxxx”,“release-年月日-taskxxx”。当然,也可以根据需要,保留一定的时间。

  • “release-年月日”作为develop和master之间的缓冲,将开发版和正式版解耦。需要有专人进行管理和维护。

正式版

  • 主体分支是master

  • 连接正式环境,由运营负责维护、配置

  • master由“release-年月日”合并而来,合并之后,拉“tag-年月日”,这个年月日和“release-年月日”中的年月日一致。(并不是每个release都会到master的)

  • “release-年月日”合并到master之后,“release-年月日”可以删除,因为已经转换为“tag-年月日”;当然“release-年月日”保留一定时间,比如半年,也是有一定道理的。如何取舍,看具体的管理方式。

  • 如果发现bug,可以拉分支“hotfix-年月日”

  • “hotfix-年月日”开发验证完成后,合并到master,保证master稳定可用

  • “hotfix-年月日”开发验证完成后,其改动合并到develop(此时的develop可能已经领先很多,需要做增量合并),保持develop最新可靠。当然,根据具体情况,可以不合并

  • “hotfix-年月日”合并到master之后,同样打“tag-年月日”

  • “hotfix-年月日”在合并之后可以删除。当然,也可以根据需要,保留一定的时间。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容