分支分类

分支主要分为两大类:

  • main分支
  • supporting分支

Main分支

分为两类:

  • master分支:master(trunk)
  • release分支:sdk_vx.y_release

Supporting分支

只有一类,Gitlab以feature分支作为提交的基本单位

  • feature分支

分支命名规范

master分支

master

release分支

sdk_{version_id}_release

version_id为发布版本号

例:

sdk_v1.2_release

feature分支

feature/{jira_id}/{description}

例:

feature/GESWITCH-333/add_gpio_driver

Tag命名规范

Maintainer在开发的合适阶段在master分支和release分支上打tag。

Release branch Tag

当release分支上的feature全都开发完毕要进入到release candidate 测试阶段(rc测试),打上tag: sdk_{version_id}

例:

sdk_v1.2

RC 测试tag

在release分支上合并修复patch后需要打tag:sdk_{version_id}-rcx

rcx代表第几轮rc测试

例:

sdk_v1.2-rc3
sdk_v1.2.3-rc2

分支关系

  1. master分支
  • 为开发的主干分支
  • 所有开发工作提交到次分支
  • 由Maintainer创建
  1. release分支
  • 为发布分支
  • 提交bugfix(或者feature(尽量少这么做))到此分支
  • 如果bugfix(或者feature)在master分支上也需要的话应该首先提交到master分支,再cherry-pick到release分支。(以免master上遗漏这些patch)
  • 一般从master分支的某个tag处检出(着急的话直接检出,譬如当前版本的feature未开发完,又需要开发下一个版本),或者也可以从其他release分支上检出
  • 由Maintainer创建
  1. feature分支
  • 为提交的基本单元
  • 从master分支上检出,合并入master
  • 从release分支上检出,合并入release分支

分支、Tag权限

为了防止错误的提交覆盖提交历史,规定所有的remote端创建的分支都开启protected权限,所有提交只能以feature branch的形式,请求merge request。任何直接提交到remote branch上的push请求都会被拒绝。

Maintainer权限职责

  • 创建master分支、release分支
  • 合并feature分支
  • 给master分支和release分支打tag
  • 删除feature分支
  • 更新版本ChangeLog(进入release阶段后和热修复后)和VERSION(进入release阶段后)文件

Developer权限职责

  • 创建local feature分支
  • push feature分支到Gitlab仓库
  • 发起merge request
  • 删除自己push的feature分支

Reviewer权限职责

  • 评审feature代码
  • 测试feature代码
  • 通知Maintainer合并请求

Tester权限职责

  • 测试Release分支上的项目
  • 反馈Bug给Developer

分支禁止操作

  • 禁止删除master分支、release candidate分支
  • 禁止直接push提交到Gitlab,所有合并请求都应以feature branch的形式push

分支策略——TBD Workflow(五)相关推荐

  1. 持续交付之基于Git Flow代码分支策略实践

    文章目录 一.前言 二.主干开发(TBD) 三.特性开发 1.Git Flow 2.产品分支策略 2.1.基本情况 2.2.分支管理 2.3.分支合并时间 2.4.初始化配置 2.5.迭代开发 2.6 ...

  2. 怎么merge分支_实战 Git 分支策略

    项目上总有那么多不尽人意的地方,导致各方面出现问题.分支管理策略就是其中一个经常遇到的问题.例如: (1) 主干开发,发现代码质量不强,导致代码提交后阻塞,等待修复问题. (2)QA 进入了在 Dev ...

  3. 【版本控制管理】 深入 001 A successful Git branching model GIT 项目分支策略和释放管理

    本文,转于老外的一个实际git的管理项目和想法.这篇文章作者把自己工作中实际使用git的版本控制构建做了总结.对的,就是git 的版本管理的构架.文章列举了一个复杂的项目开发生命维护的框架,构建了一个 ...

  4. Git工作流中常见的三种分支策略:GitFlow、GitHubFlow和GitLabFlow

    摘要:聊一聊Git中的工作流--分支策略. 本文分享自华为云社区<Git工作流中常见的三种分支策略:GitFlow.GitHubFlow以及GitLabFlow>,原文作者:敏捷的小智. ...

  5. DevOps笔记-10:金融行业分支策略的建议

    前言       现代版本控制系统不仅可以记录版本和变更记录,还有一个非常重要的功能,那就是分支管理.分支策略就是软件协作模式和发布模式的风向标.选择一种符合 DevOps 开发模式的分支策略,对于 ...

  6. 如何新建分支上传_Git分支策略及操作演示1|IDCF FDCC认证学员作品

    徐磊老师在 IDCF FDCC 认证公益训练营中提出,需求管理.配置管理.版本管理是研发管理的三大基石.而 Git 是当前最棒的版本控制系统,是事实的业界标准.可见熟悉 Git 操作, 设计合适的分支 ...

  7. Git复习(三)之分支管理、分支策略

    创建合并删除分支 我们知道每次提交git都会将他们串成一条线,这条时间线就是一个分支.在git里这条时间线叫做主分支,即master分支 HEAD指向master,master指向最新的提交,所以,H ...

  8. Git Flow分支策略与Azure DevOps相关功能简介

    想了很久,还是写这么一篇文章来总结一下有关分支策略和DevOps的一些内容吧.其实,DevOps相关的内容并不是我的工作范围,不过对于敏捷开发.DevOps.项目管理等等这一系列的与开发过程相关的内容 ...

  9. 德玛西亚之WorkFlow(五)流程引擎创建

    德玛西亚之WorkFlow(五)流程引擎创建 在之前了解了 Activiti 的配置和数据库各个表的功能含义.现在我们需要根据这些配置生成工作流引擎.Activiti 提供了多种创建流程引擎的方式供研 ...

最新文章

  1. 2018/8/30-31 A social learning particle swarm optimization for scalable optimization.
  2. Android SDK与API版本的对应关系
  3. SAP系统搜索分页的前后台实现
  4. Swift--数组和字典(二)
  5. 风机桨叶故障诊断(一) 样本的获取
  6. python的基础字典_python 基础之字典一
  7. 第七届蓝桥杯大赛个人赛省赛(软件类)真题4
  8. “OSPF” Router-ID
  9. Java设计模式之观察者模式(发布-订阅模式)
  10. pyqt5菜鸟教程_PyQt5教程(一)——第一个PyQt5程序
  11. linux设置定时重启任务
  12. 没有基础怎么学习PLC编程?
  13. 推荐一款基于.Net Core开发简约漂亮的 WPF UI库
  14. 注解和反射复习——B站
  15. 关于数据库可变长字符串类型长度设计问题:慷慨是不明智的
  16. 8421 BCD码 加减校正
  17. UART串口通信常用协议对比——rs232、485的区别
  18. 【Echarts】渐变色桑基图
  19. python win32print api_python学习笔记(win32print API介绍)
  20. 富文本编辑器summernote

热门文章

  1. Rust for Linux 源码导读 | Ref 引用计数容器 原创
  2. 2022全新Java300集强势来袭,零基础入学,就像玩游戏一样简单
  3. Android 蓝牙 HID 键值收发-小概率无响应处理
  4. arcgis地图代数(栅格计算器)处理 ndvi数值转换时的报错问题
  5. 手把手教你如何利用SSH来安装IOS越狱APP
  6. 中国推进大数据综合试验区建设 带动经济提质增效
  7. 微型计算机原理测试题,微机原理练习题
  8. android手电筒原理
  9. 档案管理系统平台:助力实现档案管理现代化
  10. 漏洞发掘技术,思路解析