Git操作规范之tag的使用技巧详解

目录
  • 常用分支
    • master
    • develop
    • release
    • hotfix
    • 使用
    • 注意
  • tag规范
    • 打tag场景
    • tag命名规范
    • 版本类型说明
    • 版本号设置规范
    • 场景举例
    • 新需求
    • 修复bug
    • 重大版本更新
    • 特殊情况

常用分支

首先分享一下我们的分支规范,然后再介绍摸索出的打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:新渠道上线

以上就是Git操作规范之tag的使用技巧详解的详细内容,更多关于Git tag操作规范的资料请关注我们其它相关文章!

(0)

相关推荐

  • jQuery标签编辑插件Tagit使用指南

    一.Tagit插件功能 提高网站交互性,增加用户体验.至于其它的功能,还真没有.用一个input text就可以替换了它.但是text没有输入提示功能,而tagit拥有这个功能.官方示例如下图: 将关键词标签化,成为一个整体.方便删除与浏览. 二.Tagit官方地址 http://aehlke.github.io/tag-it/ 官方地址上有使用说明,也有用例.用例的颜色搭配也可以选择.不过选来选去也就是这几种,Tagit插件使用jqueryui,所以jqueryui提供的样式也兼容.jquer

  • Git 详细介绍查看、删除、重命名远程分支和tag

    Git 详细介绍查看.删除.重命名远程分支和tag 1. 查看远程 分支加上-a参数可以查看远程分支,远程分支会用红色表示出来: xiaosi@Qunar:~/code/qtown-score$ git branch -a FRESH-1606_qscore-20160503 * dev master remotes/origin/20151225-qtown-score-FRESH-1236 remotes/origin/2016-2qtscore remotes/origin/FRESH-1

  • Git中tag标签的使用教程

    目录 一.tag简介 二.tag使用命令 1.列出所有tag 2.查看tag信息 3.创建tag 4.创建带注释tag 5.推送tag 6.特定commit_id创建tag 7.删除tag 8.检出tag 9.切换tag 10.为之前提交的添加tag 11.重命名tag 一.tag简介 tag是git版本库的一个标记,指向某个commit的指针.tag主要用于发布版本的管理,一个版本发布之后,我们可以为git打上 v.1.0.1 ,v.1.0.2 …这样的标签.tag感觉跟branch有点相似,

  • Android studio git创建与删除标签(Tag)的教程详解

    git上的标签一般是用于标记版本,当发布新版本后,便将该版本的代码打上Tag,用以区别及管理 使用标签前需要先将代码提交到远程仓库上 创建并提交Tag 远程端提交后: 使用Git 命令删除Tag Android Studio上没发现界面化的删除Tag操作 定位到项目根路径(该项目.git 文件夹所在处) 右键打开Git Bash 输入 git tag 查看本地tag 输入 git tag -d v1.0.3 删除本地名为"v1.0.3"的Tag 输入 git push origin –

  • Git Tag 标签详解

    Git Tag 标签 git tag 按字母排序显示标签 git tag v1.01 打上v1.01这个标签 git show v1.01 显示这个标签的详情 可以同时打多个tag指向同一个时间点上的版本 git push origin --tags 推送本地所有新增标签到远端 ps:下面看下git命令之git tag 给当前分支打标签 列出标签 $ git tag # 在控制台打印出当前仓库的所有标签 $ git tag -l 'v0.1.*' # 搜索符合模式的标签 打标签 git标签分为两

  • Git操作规范之tag的使用技巧详解

    目录 常用分支 master develop release hotfix 使用 注意 tag规范 打tag场景 tag命名规范 版本类型说明 版本号设置规范 场景举例 新需求 修复bug 重大版本更新 特殊情况 常用分支 首先分享一下我们的分支规范,然后再介绍摸索出的打tag的规范. master master : 主分支 , 最终在master分支对外发布, 此分支只能从其他分支合并,不能再这个分支直接修改 另外所有在master分支的推送应该打标签做记录,方便追溯 例如release合并到

  • eclipse的git插件安装、配置与使用详解

    1. eclipse的git插件安装与配置 1.1 git插件安装 新版本的eclipse已经自带了GIt了,就不用安装了. 老版本的eclipse安装Git,和安装一般插件过程一样: 点击help--Install new software 在弹出的框里面,输入git下载地址:http://download.eclipse.org/egit/updates/ 点击ok,如果没反应,请点击Add前面小三角,找到刚创建的以git为名字的项,稍等一会儿,出现这个框 name下面2项勾选起来,点击ne

  • Android 开发与代码无关技巧详解

    目录 1.如何找到代码 (1)无敌搜索大法 (2)log输出大法 (3)profiler查看大法 (4)万能法找到页面 2.如何解决bug (1)先看再想最后动手 (2)改变现状 (3)是技术问题还是业务问题 (4)张张嘴远胜于动动手 (5)bug解决不了,那就解决提出bug的人 (6)解决了bug之后 3.如何实现不会的功能 (1)不要急着拒绝 (2)大事化小小事化了 心态要稳,天塌了有个高的顶着 1.如何找到代码 作为客户端的开发,工作中经常遇到,后端的同事来帮忙找接口详情.产品经理来询问之

  • myeclipse8.5优化技巧详解

    还在为自己的配置低而抛弃MyEclipse8.5?还在为那低下的速度而苦恼吗?下面我们看看myeclipse8.5优化技巧的具体方法. 取消自动validation validation有一堆,什么xml.jsp.jsf.js等等,我们没有必要全部都去自动校验一下,只是需要的时候才会手工校验一下! 取消方法: windows–>perferences–>myeclipse–>validation 除开Manual下面的复选框全部选中之外,其他全部不选 手工验证方法: 在要验证的文件上,单

  • php安全攻防利用文件上传漏洞与绕过技巧详解

    目录 前言 文件上传漏洞的一些场景 场景一:前端js代码白名单判断.jpg|.png|.gif后缀 场景二:后端PHP代码检查Content-type字段 场景三:代码黑名单判断.asp|.aspx|.php|.jsp后缀 场景四:代码扩大黑名单判断 绕过方式--htaccsess: 绕过方式--大小写绕过: 场景五:一些复合判断 空格.点绕过(windows) ::$DATA绕过(windows) 双写绕过 %00截断 %0a绕过 图片马绕过 二次渲染绕过 条件竞争 /.绕过 前言 文件上传漏

  • Iptables防火墙四表五链概念及使用技巧详解

    目录 1.链的概念 2.Iptables五种链的概念 3.Iptables数据流向经过的表 4.Iptables防火墙四种表的概念 5.Iptables防火墙表与链之间的优先级概念 6.Iptables防火墙表和链之间的使用技巧 **问题1:** **问题2:** 结论: 7.Iptables防火墙几种动作 1.链的概念 在防火墙中,用户想要成功进入内网环境,就需要发送请求报文,请求报文要和防火墙设置的各种规则进行匹配和判断,最后执行相应的动作(放行或者拒绝),一个防火墙中通常针对不同的来源设置

  • Golang 内存管理简单技巧详解

    目录 引言 预先分配切片 结构中的顺序字段 使用 map[string]struct{} 而不是 map[string]bool 引言 除非您正在对服务进行原型设计,否则您可能会关心应用程序的内存使用情况.内存占用更小,基础设施成本降低,扩展变得更容易/延迟. 尽管 Go 以不消耗大量内存而闻名,但仍有一些方法可以进一步减少消耗.其中一些需要大量重构,但很多都很容易做到. 预先分配切片 数组是具有连续内存的相同类型的集合.数组类型定义指定长度和元素类型.数组的主要问题是它们的大小是固定的——它们

  • JavaScript 条件判断使用技巧详解

    目录 引言 避免直接使用字符串作为条件 使用 Object 不符合预期,提前 return 使用 Map 配合 Object Map 也可以存储函数 尽量避免三目表达式和 switch 引言 本文花费很短的时间来介绍一下在 JavaScript 中如何编写更简单的条件判断,帮助你编写更简洁的代码和可读性更高的代码. 假如我们有一个颜色值转换十六进制编码的函数. function convertToHex(color) { if (typeof color === 'string') { if (

  • Kotlin 嵌套函数开发技巧详解

    目录 1.嵌套函数 2.@JvmOverloads快捷实现函数重载 3.延迟初始化lateinit var 4.@JvmField减少属性set和get方法的生成 1.嵌套函数 业务开发中,我们可能会遇到这样一个场景:一个函数只会被某一处多次调用,且不想让这个函数在该类的其他地方调用,这个时候就需要对这个函数的访问性进行进一步限制. private是无法满足的,这个时候我们就可以使用嵌套函数提供更好的封装: fun test1() { //被限制访问行的函数 fun test2(content:

随机推荐