Git操作规范之tag的使用技巧详解
作者:王中阳Go 发布时间:2022-07-30 05:10:54
常用分支
首先分享一下我们的分支规范,然后再介绍摸索出的打tag的规范。
master
master : 主分支 , 最终在master分支对外发布,
此分支只能从其他分支合并,不能再这个分支直接修改
另外所有在master分支的推送应该打标签做记录,方便追溯
例如release合并到master
develop
主测试分支 , 基于master分支创建
包含所有要发布到下一个版本的代码
只能从其他分支合并
release 分支开发完成合并到develop
release
开发分支, 基于master分支创建
主要用于新需求新功能的开发
功能开发完毕后合到develop分支发布测试环境,测试通过后合并到master发布生产环境
release可同时存在多个
hotfix
补丁分支 , 基于master分支创建
主要用于对线上的版本进行BUG修复
修复完毕后合并到develop分支发布测试环境,测试通过后合并到master发布生产环境
属于临时分支 , 补丁修复上线后可选删除
使用
初始化项目 , 默认创建master分支
从master拉取第一个develop分支
从master拉取第一个release分支(多个开发人员拉取多个release同时进行并行开发 , 互不影响)
release分支完成后 , 合并到develop
从develop分支打tag进行提测,提测过程中在原release分支修改BUG,重复步骤4
测试通过后合并release到master,基于master分支打tag发布生产环境.此时可删除当前release分支
上线之后若发现线上BUG , 从master拉取hotfix进行BUG修改
hotfix通过测试上线后可选删除当前hotfix
注意
发布线上时一定是master合并开发分支,develop分支可能存在其它未测试通过代码
两个分支进行合并时一定要拉取一下最新代码
tag规范
打tag场景
在测试同学线上回归测试之后一定要给master分支添加tag,方便后续有需求时快速回滚到指定的稳定版本
当一个代码库在同一个时间段有多个需求要按顺序上线时,运维同学需要通过tag标记区分要构建的代码,这时候需要添加tag。
tag命名规范
版本类型_版本号
比如:stable_v1.1.0
意为:稳定版v1.1.0
版本类型说明
版本类型 | 说明 | 备注 |
---|---|---|
pre | 预发布版,用于运维同学知晓要构建的代码 | 上线测试无误后删除pre类型的tag |
stable | 稳定版,新功能上线后使用这个类型 | 不删除tag,方便后续回滚 |
hotfix | 修复版,修复线上bug使用这个类型 | 不删除tag,方便后续回滚 |
pre类型的tag应该在测试同学回归测试通过,打完stable类型或者hotfix类型的tag之后删除。
代码仓库只保留stable类型和hotfix类型的tag,方便回滚到稳定版本;不保留pre这种过渡类型的tag。
版本号设置规范
比如版本号:v1.0.0
第一个数字1,代表大版本,默认从1开始,大版本更新时才递增
第二个数字0,代表小版本更新,默认从0开始
第三个数字0,代表补丁版本,默认从0开始
场景举例
注意:在打tag的时候需要设置message,写清楚注释。
新需求
tag name命名规范:stable_v1.0.0
tag message:云仓商品添加销量字段
修复bug
tag name 命名规范:hotfix_v1.0.1
tag message:修复XXX bug
重大版本更新
tag name 命名规范:stable_v2.0.0
tag message:项目整体重构后上线
特殊情况
预发布环境,需要按顺序构建的:
tag name 命名规范:pre_v1.0.1
tag message:预发布tag:商品中心上线
tag name 命名规范:pre_v1.0.2
tag message:预发布tag:新渠道上线
来源:https://juejin.cn/post/7135234266774355981
猜你喜欢
- 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。以下文章来源于早起Python ,作者投
- 一、.NET Framework Data Provider for SQL Server类型:.NET Framework类库使用:Sys
- 树莓派与arduino串口通信第一步:先设置硬件串口分配给GPIO串口输入sudo raspi-config命令进入树莓派系统配置界面,选择
- 对于大多数数据科学家而言,线性回归方法是他们进行统计学建模和预测分析任务的起点。这种方法已经存在了 200 多年,并得到了广泛研究,但仍然是
- 弹出框有两种:页面弹出框(可定位元素能操作)、Windows弹出框(不能直接定位)一、页面弹出框等待弹出框出现之后,定位弹出框,操作其中元素
- 有时候会出现索引问题,显示scanning files to index解决方法:in pycharm, go to the "F
- websocket在vue2中的封装使用先说需求: 页面中有websocket连接,进入的时候发送参数到后端,后端发送消息, 离开页面时发送
- 用法一 SELECT `keyword_rank`.* FROM `keyword_rank` WHERE (advertiser
- 解决方法:1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql
- event.keycode值大全 1 keycode 8 = BackSpace BackSpace 2 keycode 9 = Tab T
- 具体代码如下所示:package mainimport ( "bufio" "io&q
- 一、背景:近期在利用 pycharm 安装第三方库时会提示 pip 不是最新版本, 因此对 pip 进行更新,但是生成最新版本之后, pi
- 前言昨天把自己的VASP文件处理库进行了打包并上传到PyPI,现在可以直接通过pip和easy_install来安装VASPy啦(同时欢迎使
- 一个js代码,图片实时变形一幅图片,长度\宽度之大小与比例都不停地变化,如同哈哈镜的效果,很能引人注目,用在网页上,可以给人意外的惊喜!&l
- 端口扫描是非常实用的,不止用在信息安全方面,日常的运维也用得到。这方面的工具也不要太多,搞过 CTF 的朋友会告诉你有多少端口扫描工具,那为
- python将a.txt的内容复制到b.txt 中# 1. 用r方式打开a.txtf = open("a.txt",&q
- 成功解决NLTK包的安装错误创建环境NLP_Pre_trainl环境conda create -n NLP_Pre_train python
- 搞不清楚在闭包(closures)中Python是怎样绑定变量的看这个例子:>>> def create_multipli
- 引言语音端点检测最早应用于电话传输和检测系统当中,用于通信信道的时间分配,提高传输线路的利用效率.端点检测属于语音处理系统的前端操作,在语音
- char与varchar的区别来源:https://www.cnblogs.com/ZhuChangwu/p/15118290.html