Git:开发中的Git分支规范
Posted ABin-阿斌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git:开发中的Git分支规范相关的知识,希望对你有一定的参考价值。
我是 ABin-阿斌:写一生代码,创一世佳话,筑一览芳华。 如果小伙伴们觉得文章有点 feel ,那就点个赞再走哦。
声明:原文地址:https://juejin.cn/post/7135234266774355981
文章目录
一、分支规范
- 首先分享一下我们的分支规范,然后再介绍摸索出的打tag的规范。
1、常用分支
1.1、master
- master : 主分支 , 最终在master分支对外发布,
- 此分支只能从其他分支合并,不能再这个分支直接修改
- 另外所有在master分支的推送应该打标签做记录,方便追溯
- 例如release合并到master
1.2、develop
- 主测试分支 , 基于master分支创建
- 包含所有要发布到下一个版本的代码
- 只能从其他分支合并
- release 分支开发完成合并到develop
1.3、release
- 开发分支, 基于master分支创建
- 主要用于新需求新功能的开发
- 功能开发完毕后合到develop分支发布测试环境,测试通过后合并到master发布生产环境
- release可同时存在多个
1.4、hotfix
- 补丁分支 , 基于master分支创建
- 主要用于对线上的版本进行BUG修复
- 修复完毕后合并到develop分支发布测试环境,测试通过后合并到master发布生产环境
- 属于临时分支 , 补丁修复上线后可选删除
2、使用
- 初始化项目 , 默认创建master分支
- 从master拉取第一个develop分支
- 从master拉取第一个release分支(多个开发人员拉取多个release同时进行并行开发 , 互不影响)
- release分支完成后 , 合并到develop
- 从develop分支打tag进行提测,提测过程中在原release分支修改BUG,重复步骤4
- 测试通过后合并release到master,基于master分支打tag发布生产环境.此时可删除当前release分支
- 上线之后若发现线上BUG , 从master拉取hotfix进行BUG修改
- hotfix通过测试上线后可选删除当前hotfix
3、注意
- 发布线上时一定是master合并开发分支,develop分支可能存在其它未测试通过代码
- 两个分支进行合并时一定要拉取一下最新代码
二、tag 规范
1、打tag场景
- 在测试同学线上回归测试之后一定要给master分支添加tag,方便后续有需求时快速回滚到指定的稳定版本
- 当一个代码库在同一个时间段有多个需求要按顺序上线时,运维同学需要通过tag标记区分要构建的代码,这时候需要添加tag。
2、tag命名规范
版本类型_版本号
比如:stable_v1.1.0
意为:稳定版v1.1.0
3、版本类型说明
版本类型 | 说明 | 备注 |
---|---|---|
pre | 预发布版,用于运维同学知晓要构建的代码 | 上线测试无误后删除pre类型的tag |
stable | 稳定版,新功能上线后使用这个类型 | 不删除tag,方便后续回滚 |
hotfix | 修复版,修复线上bug使用这个类型 | 不删除tag,方便后续回滚 |
- pre类型的tag应该在测试同学回归测试通过,打完stable类型或者hotfix类型的tag之后删除。
- 代码仓库只保留stable类型和hotfix类型的tag,方便回滚到稳定版本;不保留pre这种过渡类型的tag。
4、版本号设置规范
比如版本号:v1.0.0
- 第一个数字1,代表大版本,默认从1开始,大版本更新时才递增
- 第二个数字0,代表小版本更新,默认从0开始
- 第三个数字0,代表补丁版本,默认从0开始
5、场景举例
注意:在打tag的时候需要设置message,写清楚注释。
5.1、新需求
- tag name命名规范:stable_v1.0.0
- tag message:云仓商品添加销量字段
5.2、修复bug
- tag name 命名规范:hotfix_v1.0.1
- tag message:修复XXX bug
5.3、重大版本更新
- tag name 命名规范:stable_v2.0.0
- tag message:项目整体重构后上线
6、特殊情况
预发布环境,需要按顺序构建的:
- tag name 命名规范:pre_v1.0.1
- tag message:预发布tag:商品中心上线
- tag name 命名规范:pre_v1.0.2
- tag message:预发布tag:新渠道上线
以上是关于Git:开发中的Git分支规范的主要内容,如果未能解决你的问题,请参考以下文章
Git:Git的那些干活,安装与配置用户信息Git分支提交规范冲突解决等等