4.4 分支命名规范
-
版本开发分支命名规范:feature_产品版本号-需求说明
-
bug分支命名规范:hotfixes_负责人_bug说明
-
release branches(release_master):名称固定
-
dev:名称固定
-
master:名称固定
4.5 正常发布流程
-
根据产品需求,以master为源代码创建feature branches,命名规范为:feature_产品版本号-需求说明。
-
feature branches开发自测完毕之后,合并到dev分支等待测试人员测试。
-
测试人员测试通过之后,通知分支开发负责人将需求发布到预发布环境。
-
开发人员将feature branches代码合并到release branches中,等待发布上线。
-
得到允许发布到线上的命令之后,将release branches代码合并到master分支,并打上tag记录。
-
将上线版本对应的feature branches删除。
4.6 bug修复流程
-
出现bug之后,以release branches为源码创建hotfixes分支,命名规范为hotfixes_负责人_bug说明。
-
hotfixes分支开发自测通过之后,修改bug环境对应服务的分支指向,启动完毕之后通知测试人员开始测试。
-
测试人员测试通过之后,通过对应开发人员。
-
开发人员收到通知后,就可以将hotfixes分支代码合并到release branches和erp-dev分支中,并修改回bug环境对应服务的分支配置(默认为release分支)。
-
release分支功能发布线上之后(bug修复的代码包含在里面),将对应的bug分支删除。
4.7 版本发布流程图
五、demo流程演示
5.1 正常发布流程
以master分支为源头创建如下分支:
现要求:
feature_v1_test1:开发时间为5天,从2021-04-06开始开发 预计发布日期2021-04-10
feature_v1_test2:开发时间为2天,从2021-04-06开始开发,预计发布日期2021-04-08
feature_v1_test3:开发时间为1天,从2021-04-06开始,预计发布日期2021-04-06
开始开发feature_v1_test1、feature_v1_test2、feature_v1_test3版本代码。
开发完毕后,合并到dev中,等待测试人员测试。
测试人员在dev环境中,将feature_v1_test3版本功能测试完毕后,开发人员将feature_v1_test3分支合并发布到release分支。
release分支最后检测发现有bug,在release分支进行bug修复,修复完毕后合并到dev中
release分支最后验收完毕,将release分支合并发布到master上线。
发布master成功之后,将feature_v1_test3分支删除(本地和线上)。
5.2 bug修复流程
以当前release分支为源头,创建一个hotfixes_linzhiqiang_login分支,用于修复线上bug。
bug修复完毕之后,以hotfixes_linzhiqiang_login分支作为测试环境对应服务分支,测试通过之后,将hotfixes_linzhiqiang_login合并到release分支中,等待发布上线。
release预发布测试bug是否正确被修复,测试通过则将release分支发布到master分支上线。
发布成功之后,则将bug分支删除,一般情况下,bug分支不需要发布到远程仓库中。
5.3 注意事项
master每次发布都需要打个tag,对本次版本进行说明解释。
对应版本发布到线上之后,需要删除对应的feature branches分支代码。
六、总结
上面讲述了如何利用Git flow适配我们自己项目发布流程。但是当前版本发布流程还是会存在某些特殊问题。
6.1 feature branches当天多版本上线问题
如果feature branches分支中有两个版本需要当天发布,一个是中午,一个是下午,因为目前我们release分支只有一个分支,所以没办法兼容这种情况,遇到需要特殊处理。
6.2 bug时效高于release分支
如果release分支预计是当天晚上发布,但是当天早上有一个紧急的bug需要立即修复。这个时候就不能以release分支作为源头拉取bug分支了,必须以master为源头拉取分支。修复之后合并到master和release分支中。
6.3 feature branches合并到release分支冲突
因为我们是从feature branches直接合并到release分支的,过程中跳过dev分支,如果修改同一个文件,会大大增加冲突概率。
虽然特殊问题需要特殊处理,但是这种情况发生概率极低,就算发生了也有解决方案。所以总体来说当前的发布流程可以满足大多数情况。
-----------------------
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
最后
小编精心为大家准备了一手资料
以上Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术
【附】架构书籍
- BAT面试的20道高频数据库问题解析
- Java面试宝典
- Netty实战
- 算法
BATJ面试要点及Java架构师进阶资料
]
以上Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术
【附】架构书籍
- BAT面试的20道高频数据库问题解析
- Java面试宝典
- Netty实战
- 算法
[外链图片转存中…(img-GgefUa1o-1710398684789)]
BATJ面试要点及Java架构师进阶资料
[外链图片转存中…(img-a0DGOVLW-1710398684789)]