Git 代码分支规范
目的
俗话说:没有规矩,不成方圆。遵循一个好的规章制度能让你的工作事半功倍。同时也可以展现出你做事的认真的态度以及你的专业性,不会显得杂乱无章,管理困难。Git分支规范也是一样。当遵循了某种约定的Git分支,在代码提交以及多开发、多分支协同工作的时候,必须遵循这个规范操作,否则不予以提交、合并代码、提测、上线等操作。
适用范围
适用Git管理开发的所有项目
分支约定
Git Flow有主分支和辅助分支两类分支,通常主分支也被称为长期分支。
-
主分支用于组织与软件开发、部署相关的活动;
-
辅助分支组织为了解决特定的问题而进行的各种活动。
主分支是所有开发活动的核心分支。所有的开发活动产生的输出物最终都会反映到主分支的代码中。
分支介绍
• tag:
使用release发布生产成功后,三日之内把release分支合并到master上并打tag。
使用realase分支创建tag版本,使用tag进行线上部署
生产流水线自动打tag
• master分支:
不接受commit,只接受来自realase分支的merge操作
分支必须开启分支保护,只有维护者可以操作
• release分支:
可从test/master分支上拉取;
不接受commit,只接受来自对应test分支的合并操作;
普通开发人员不具有合并权限,需要管理员才能合并
release分支用于发布预生产环境部署;
上线成功后必须立即合并到master
release分支用于发布生产环境部署,上线完成后,禁止合并;
• test分支
从master/develop分支拉取,用于测试环境部署
不接受commit提交,只接受来自对应develop的合并
• develop分支:
从master/feature分支拉取,用于开发环境部署
不接受commit提交,只接受来自feature的合并
• feature分支:
不限制从什么分支拉取,拉取代码时候版本号必须大于等于最新master的版本
可直接commit
一般不用于任何环境部署,特殊情况可以用于开发环境部署
禁止用于测试、预生产、灰度、生产部署
bug修复分支,也按feature分支规范和流程
• hotfix分支
紧急bug修复分支,仅用于紧急的线上问题修复,普通bug修复还是使用feature分支规范
分支命名规则及对应环境
| 分支 | 命名规则 | 名称 | 环境 | 权限 |
|---|---|---|---|---|
| master | master | 主分支,保护分支,只接受merge | - | 保护 |
| tag | tag-{上线时间}-v{版本号} | tag 如:tag-20220803-v1.2.0 | - | 只读 |
| release | release-{时间}-{版本号}-{创建人} ; | 预上线分支;release-20220803-v1.2.0-liuyy | 预生产、生产 | 保护 |
| test | test-{时间}-{功能描述}-{创建人} ;除了前缀,名称与develop一致 | 测试部署分支; test-20220803-superChargeV1-liuyy | 测试 | 保护 |
| develop | develop-{时间}-{功能描述}-{创建人} ; 除了前缀,名称与feature一致 | 开发部署分支;develop-20220803-superChargeV1-liuyy | 开发 | 常规 |
| feature | feature-{创建时间}-{功能描述}-{创建人} | 功能开发分支;feature-20220803-superChargeV1-liuyy | - | 常规 |
| hotfix | hotfix-{创建时间}-{bug描述}-{创建人} | 紧急bug修复分支;hotfix-20220803-bugxxx-liuyy | 不限 | 常规 |
分支规则正则:
--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown
^(test|feature|develop|hotfix)-(20\d{6})(-\w+){2}$|^(release|tag)-(20\d{6})-v\d+(\.\d+){2}(-\w+){0,1}$
分支使用示意图


总结
1、一个上线需求一个feature分支,正常情况feature、develop、test、release分支是一一对应的
2、如果有多个需求需要合并上线,那么需要从develop分支开始合并,即多个feature对一个develop分支,但develop、test、release也还是一一对应的
3、除了feature分支外,所有分支都不接受commit,只接受合并
4、普通bug修复使用feature分支,流程一样
5、紧急bug修复走hotfix分支流程
6、所有上线的代码必须走完完整的develop、test、release流程
代码提交规范
-
所有commit必须有注释,内容必须简洁明了的描述本次commit涵盖了哪些内容。严禁注释内容过于简单或不能明确表达提交内容的!
-
合理控制提交内容的颗粒度,一次commit含一个独立功能点。严禁一次提交涵盖多个功能项。
-
提交注释字符数务必大于8, 尽量控制在60个字符之内。
建议参考规范:
示例:
fix(首页模块):修复弹窗 JS Bug。
type(可选)表示动作类型,可分为:
-
fix:修复 xxx Bug
-
feat:新增 xxx 功能
-
test:调试 xxx 功能
-
style:变更 xxx 代码格式或注释
-
docs:变更 xxx 文档
-
refactor:重构 xxx 功能或方法
scope(可选) 表示影响范围,可分为:模块、类库、方法等。
subject(必须) 表示简短描述,大于8个字符,小于 60 个字,如果有编号的 Jira 号,建议在描述中加上。
相关文章:
Git 代码分支规范
目的 俗话说:没有规矩,不成方圆。遵循一个好的规章制度能让你的工作事半功倍。同时也可以展现出你做事的认真的态度以及你的专业性,不会显得杂乱无章,管理困难。Git分支规范也是一样。当遵循了某种约定的Git分支,在代…...
ATFX汇评:美7月通胀率数据基本符合预期,美指仍无法站稳103关口
ATFX汇评:据美劳工部,美国7月未季调CPI年率,最新值3.2,高于前值3%,低于预期值3.3%,这标志着连续12个月的下降已经停止;7月未季调核心CPI年率,最新值4.7%,低于前值4.8%&am…...
系统架构设计专业技能 · 软件工程(一)【系统架构设计师】
系列文章目录 系统架构设计高级技能 软件架构概念、架构风格、ABSD、架构复用、DSSA(一)【系统架构设计师】 系统架构设计高级技能 系统质量属性与架构评估(二)【系统架构设计师】 系统架构设计高级技能 软件可靠性分析与设计…...
C语言 指针的运算
目录 一、介绍 二、指针 整数 、指针 - 整数 二、指针 - 指针 四、指针的关系运算 一、介绍 在C语言中,指针的运算分为三类 1、指针 整数 、指针 - 整数2、指针 - 指针3、指针的关系运算 二、指针 整数 、指针 - 整数 因为数组在…...
【JAVA基础】- 同步非阻塞模式NIO详解
【JAVA基础】- 同步非阻塞模式NIO详解 文章目录 【JAVA基础】- 同步非阻塞模式NIO详解一、概述二、常用概念三、NIO的实现原理四、NIO代码实现客户端实现服务端实现 五、同步非阻塞NIO总结 一、概述 NIO(Non-Blocking IO)是同步非阻塞方式来处理IO数据。…...
dingding机器人
“自定义机器人”只支持消息发送,自动回复需要“企业内部机器人” 消息发送 import requests import jsonres requests.post(https://oapi.dingtalk.com/robot/send?access_token036a339axxx,data json.dumps({"text": {"content":"h…...
6.6 实现卷积神经网络LeNet训练并预测手写体数字
模型架构 代码实现 import torch from torch import nn from d2l import torch as d2lnet nn.Sequential(nn.Conv2d(1,6,kernel_size5,padding2),nn.Sigmoid(),#padding2补偿5x5卷积核导致的特征减少。nn.AvgPool2d(kernel_size2,stride2),nn.Conv2d(6,16,kernel_size5),nn.S…...
Django路由Router
文章目录 一、路由router路由匹配命名空间反向解析 二、实践创建用户模型Model添加子路由 - 创建用户首页页面跳转 - 使用反向解析和命名空间1. 不使用命名空间的效果2. 使用命名空间的效果 用户详情页面跳转 - 路由传参路由传递多个参数re_path 以前写法,了解即可重定向Redire…...
蜜蜂路线 P2437
蜜蜂路线 题目背景 无 题目描述 一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房 m 开始爬到蜂房 n,m<n,有多少种爬行路线?(备注:题面有误&…...
无脑——010 复现yolov8 使用yolov8和rt detr 对比,并训练自己的数据集
1.配置环境 1. 首先去官网下载yolov8的zip https://github.com/ultralytics/ultralytics 存放在我的目录下G:\bsh\yolov8 然后使用conda创建新的环境 conda create -n yolov8 python3.8 #然后激活环境 conda activate yolov8然后安装pytorch,注意 ,py…...
如何给Google Chrome增加proxy
1. 先打开https://github.com/KaranGauswami/socks-to-http-proxy/releases 我的电脑是Liunx系统所以下载第一个 2. 下载完之后把这个文件变成可执行文件,可以是用这个命令 chmod x 文件名 3. 然后执行这个命令: ./sthp-linux -p 8080 -s 127.0.0.1:…...
设计模式——原型模式
原型模式就是有时我们需要多个类的实例,但是一个个创建,然后初始化,这样太麻烦了,此时可以使用克隆,来创建出克隆对象,就能大大的提高效率。具体就是要让此类实现Cloneable接口,然后重写Object类…...
Spring框架中的Bean生命周期
目录 Bean的实例化 BeanFactoryPostProcessor 属性赋值 循环依赖 初始化 处理各种Aware接口 执行BeanPostProcessor前置处理 执行InitializingBean初始化方法或执行init-method自定义初始化方法 执行BeanPostProcessor后置处理 销毁 Spring Bean 的生命周期总体分为…...
async和await修饰符
async和await是JavaScript中用来处理异步操作的关键字 。 async和await也是解决回调地域的终极方案,简单,而Promise链混杂难以看懂。 async关键字用于定义一个函数,使其返回一个Promise对象。这意味着该函数可以通过await关键字来暂停执行&…...
vivado tcl创建工程和Git管理
一、Tcl工程创建 二、Git版本管理 对于创建完成的工程需要Git备份时,不需要上传完整几百或上G的工程,使用tcl指令创建脚本,并只将Tcl脚本上传,克隆时,只需要克隆tcl脚本,使用vivado导入新建工程即可。 优…...
田间农业数字管理系统-高标准农田建设
政策背景 2019年11月,国务院办公厅印发的《国务院办公厅关于切实加强高标准农田建设提升粮食安全保障能力的意见》明确提出,到2022年,全国要建成10亿亩高标准农田。 2021年9月16日,由农业农村部印发的《全国高标准农田建设规划&a…...
【网络安全】等保测评系列预热
【网络安全】等保测评系列预热 前言1. 什么是等级保护?2. 为什么要做等保?3. 路人甲疑问? 一、等保测试1. 渗透测试流程1.1 明确目标1.2 信息搜集1.3 漏洞探索1.4 漏洞验证1.5 信息分析1.6 获取所需1.7 信息整理1.8 形成报告 2. 等保概述2.1 …...
解决: git拉取报错 git 未能顺利结束 (退出码 1)
拉取代码失败信息 解决方法: 执行一下"git push -f origin master"命令即可 步骤: 1.项目文件夹右击选择"Git Bash Here",打开命令窗口 2. 输入"git push -f origin master"后,回画 执行结束 3.再拉取代码,成功...
【深度学习中的批量归一化BN和层归一化LN】BN层(Batch Normalization)和LN层(Layer Normalization)的区别
文章目录 1、概述2、BN层3、LN层4、Pytorch的实现5、BN层和LN层的对比 1、概述 归一化(Normalization) 方法:指的是把不同维度的特征(例如序列特征或者图像的特征图等)转换为相同或相似的尺度范围内的方法,比如把数据特征映射到[…...
开发一个RISC-V上的操作系统(六)—— 中断(interrupt)和异常(exception)
目录 往期文章传送门 一、控制流 (Control Flow)和 Trap 二、Exceptions, Traps, and Interrupts Contained Trap Requested Trap Invisible Trap Fatal Trap 异常和中断的异同 三、RISC-V的异常处理 mtvec(Machine Trap-Vector Ba…...
LinkSwift:八大网盘平台直链获取解决方案的技术解析与应用指南
LinkSwift:八大网盘平台直链获取解决方案的技术解析与应用指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘…...
DeepEval终极指南:如何用40+指标构建专业的LLM评估框架
DeepEval终极指南:如何用40指标构建专业的LLM评估框架 【免费下载链接】deepeval The LLM Evaluation Framework 项目地址: https://gitcode.com/GitHub_Trending/de/deepeval 你是否正在为AI应用的质量监控而烦恼?当你的RAG系统返回了看似合理的…...
如何快速掌握OpenFace面部行为分析:新手到专家的完整实战指南
如何快速掌握OpenFace面部行为分析:新手到专家的完整实战指南 【免费下载链接】OpenFace OpenFace – a state-of-the art tool intended for facial landmark detection, head pose estimation, facial action unit recognition, and eye-gaze estimation. 项目地…...
泵人心中很清楚的HPH构造——三大系统和常见故障全面解析
近日来,科技创新范畴热闹得很。于今日在合肥拉开帷幕的第四届中国(安徽)科技创新成果转化交易会上,892项科技新成果集体首次亮相,涵盖了氢能装备,核聚变能,量子科技等好些前沿领域。碰巧的是&am…...
长沙心理医院暖心指南+真实案例分享
随着社会节奏加快,心理健康问题逐渐成为影响个人生活质量与社会和谐的重要因素。在长沙,作为中部核心城市,心理疾病就诊需求持续攀升,但与此同时,患者在就医过程中仍面临诸多挑战。据相关统计显示,长沙市居…...
AI检测率怎么降低?2026年5款知名降AI率工具评测,结果出乎意外!
一、前言:2026 年毕业必须通过aigc检测 2026年各高校对学术论文的AIGC疑似度的审查全面变严,均发布了具体AIGC检测报告和数值要求,211和985高校规定本科论文AI率要低于20%,硕士要求 AI 率不高于15%。普通高校一般要求AI率控制在 …...
从“点灯”到“调灯”:用Keil uVision5的调试窗口,像侦探一样排查你的STM32程序
从“点灯”到“调灯”:用Keil uVision5的调试窗口,像侦探一样排查你的STM32程序 当LED灯第一次在你的STM32开发板上闪烁时,那种成就感就像解开一道数学难题。但真正的嵌入式开发者知道,这只是开始——当程序复杂度增加,…...
丙酮法 vs 热乙醇法:测叶绿素a到底该选谁?从原理、安全到数据对比的全方位解析
丙酮法 vs 热乙醇法:测叶绿素a到底该选谁?从原理、安全到数据对比的全方位解析 实验室里,当我们需要测定水体浮游植物叶绿素a含量时,总会面临一个关键选择:是沿用传统的丙酮萃取法,还是转向国际上日益流行的…...
PPTX2HTML技术深度解析:纯前端PPTX转HTML的架构设计与实现
PPTX2HTML技术深度解析:纯前端PPTX转HTML的架构设计与实现 【免费下载链接】PPTX2HTML Convert pptx file to HTML by using pure javascript 项目地址: https://gitcode.com/gh_mirrors/pp/PPTX2HTML PPTX2HTML是一款基于纯JavaScript技术栈的开源工具&…...
告别蓝图和材质:用UE4的UEdGraph框架,为你的游戏数据定制专属可视化编辑工具
突破蓝图限制:用UEdGraph打造游戏数据可视化编辑利器 在中小型游戏团队中,技术策划和TA常常面临一个尴尬局面:Excel表格里密密麻麻的数据难以直观呈现复杂的逻辑关系,而蓝图编辑器又过于通用,无法精准匹配特定游戏系统…...
