Git常用规范

news2024/10/5 21:22:42

分支命名规范

Git分支命名规范可以根据具体的项目和团队的需要而有所不同,但是以下是一些常见的规范:

  1. 主分支(master/main):这个分支通常是主要的稳定分支,它包含了当前生产环境的代码。在一些项目中,这个分支也被称为“main”。
  2. 开发分支(develop):这个分支是开发人员用来合并所有的特性分支和bug修复分支的分支。它应该始终是最新的开发状态,并且也应该比主分支或稳定分支更频繁地进行更改。
  3. 特性分支(feature):这些分支是用来开发新特性或功能的,通常命名为“feature/”,其中是特性名称的简短描述。
  4. 修复分支(fix):这些分支用于修复已知的bug,通常命名为“fix/”,其中是bug的简短描述。
  5. 发布分支(release):这些分支用于准备代码发布,例如进行代码打包,版本更新等。通常命名为“release/”,其中是该版本的版本号。
  6. 热修复分支(hotfix):这些分支用于修复生产环境中出现的紧急bug。它们通常是从主分支或发布分支中创建的,然后在修复后合并回主分支和发布分支。通常命名为“hotfix/”,其中是bug的简短描述。

除了上述命名规范,还需要注意以下几点:

  1. 尽量使用简洁明了的命名方式,避免过长或过于复杂的名称。
  2. 统一命名方式,确保所有开发人员都能理解和遵守命名规范。
  3. 避免使用特殊字符和空格,以免在使用Git命令时出现问题。

总之,良好的分支命名规范可以让代码仓库更加规范、易于管理和维护,提高团队协作效率和代码质量。

分支类型命名规范用途
主分支(master/main)master或main包含当前生产环境的稳定代码
开发分支(develop)develop用来合并所有的特性分支和bug修复分支的分支,通常是最新的开发状态
特性分支(feature)feature/用于开发新特性或功能
修复分支(fix)fix/用于修复已知的bug
发布分支(release)release/用于准备代码发布
热修复分支(hotfix)hotfix/用于修复生产环境中出现的紧急bug
自定义分支可根据项目需要自定义命名规范,但需要清晰明了根据具体项目需要创建其他类型的分支,但需要清晰明了其用途和命名约定,以确保代码库的整洁性和可维护性。

代码提交规范

下面是归纳汇总的代码提交规范:

  1. 提交信息格式: 包括提交信息的标题和正文,其中标题应该简明扼要、能够概括本次提交的内容,正文则应该详细说明本次提交的修改和原因。
  2. 提交频率: 尽量避免频繁提交代码,应该在一定的时间间隔或者完成一定的工作量后再进行提交,以减少不必要的代码冲突和版本控制问题。
  3. 提交范围: 只提交与本次任务或者功能相关的代码,避免将不相关的代码混在一起提交。
  4. 提交顺序: 先提交修改的文件、再提交新建的文件,同时在提交前进行代码格式化、排版等操作,以保持代码的一致性和整洁性。
  5. 分支选择: 在提交代码前,应该选择正确的分支进行代码提交,避免将代码提交到错误的分支或者提交到不合适的分支上。
  6. 代码质量: 提交的代码应该符合一定的质量要求,包括编码规范、代码风格、注释规范等,以提高代码的可读性和可维护性。
  7. 版本号控制: 在代码提交时,应该遵守版本号的规范,包括MAJOR、MINOR、PATCH等版本号的更新规则。
  8. 提交记录管理: 为了方便团队成员查看和管理提交记录,应该对提交记录进行分类和整理,例如通过使用标签或者注释来标记不同类型的提交记录,或者通过使用Git log命令来查看和管理提交记录。
  9. 关注点分离原则: 代码提交应该符合关注点分离原则,即将相关的修改放在一起提交,避免将不相关的修改混在一起提交。
  10. 提交前测试: 在提交代码前,应该进行必要的测试,以确保代码的质量和可靠性。
  11. 充分说明修改内容: 在提交代码时,应该充分说明本次提交的内容和修改的原因。
  12. 版本控制工具的使用: 应该掌握和熟练使用版本控制工具,例如Git等,以便更好地管理代码的版本和提交记录。
提交message规范
<type>(<scope>): <description> [#<issue-number>]

<body>

<footer>

其中,、、 和 # 是必填项, 可以省略, 不宜过长,最好不超过50个字符, 和 # 建议使用关键字和Issue编号的形式进行填写。
具体说明如下:

  1. :提交的类型,可以是以下之一:
    • feat:新功能
    • fix:修复问题
    • docs:文档修改
    • style:代码格式修改,不影响代码运行
    • refactor:重构代码
    • test:测试代码修改
    • chore:构建过程或辅助工具的修改
  2. :影响范围,一般是指修改的文件、功能模块等,可选项。
  3. :提交的描述信息,应该简短明了、清晰明了,最好不超过50个字符。
  4. #:可选项,可以填写对应的Issue编号。
  5. :正文部分,应该对提交的修改进行详细说明,包括修改的原因、解决的问题、影响的范围等信息,最好能够清晰明了地表达提交的目的。
  6. :可选项,可以包含一些提交元数据,如作者、协作者、变更记录等信息。

总之,代码提交message规范的目的是为了让代码提交记录更加清晰明了,方便团队成员查看和理解提交的内容和目的,从而提高团队协作的效率和质量。

模板
<类型>(<范围>): <主题>

<描述>

Co-authored-by: 姓名 <邮箱>

上面的message模板包含了以下几个部分:

  • 类型(type):表示提交的类型,可以使用约定俗成的关键标签(如feat、fix、docs等)或自定义标签。标签应该以小写字母开头,并用冒号(:)和空格隔开。
  • 范围(scope):表示提交的范围,可以是文件、模块、功能等。范围应该以小写字母包含在圆括号中,并用冒号和空格隔开。
  • 主题(subject):表示提交的主题,应该简洁明了,不超过50个字符。主题应该以动词开头,使用一般现在时,不要使用第一人称(如“我”、“我们”)。
  • 描述(body):表示提交的详细描述,可以包含更多的细节和上下文信息。描述应该使用简洁明了的语言,不超过72个字符宽度,可以使用多个段落。
  • Co-authored-by:表示参与协作的人员信息,可以根据需要添加。

需要注意的是,使用message模板可以帮助我们规范化提交信息的格式和内容,但并不是所有的提交都需要按照模板来写。在实际开发中,我们应该根据实际情况灵活选择合适的提交信息,并确保提交信息的内容准确、清晰、简洁。

示例:
feat: 添加新功能

为某个页面添加了一个新的功能点,并优化了代码逻辑。

Co-authored-by: 张三 <zhangsan@example.com>
Co-authored-by: 李四 <lisi@example.com>

分支合并流程

简单流程:
在这里插入图片描述

复杂流程 :

在这里插入图片描述
support 分支是一个可选的分支,用于在生产环境中维护当前正在运行的软件版本。它可以用来解决在生产环境中发现的 bug,而不会对正在进行的开发工作造成干扰。在 support 分支上修复 bug 后,这些修复将合并到 release 分支中,以便下一个软件版本的发布。

简化常用流程:

在这里插入图片描述

master : 主分支,供新功能拉取
feature-dk-xxx : 开发分支
fat: UAT环境分支,多个feature-dk-xxx 分支代码提交到该分支进行测试
release: 上线版本分支

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1214449.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【2016年数据结构真题】

已知由n&#xff08;M>2&#xff09;个正整数构成的集合A{a<k<n},将其划分为两个不相交的子集A1 和A2&#xff0c;元素个数分别是n1和n2&#xff0c;A1和A2中的元素之和分别为S1和S2。设计一个尽可能高效的划分算法&#xff0c;满足|n1-n2|最小且|s1-s2|最大。要求…

requests 2.13.0 版本的 https 连接慢漏提示

# 解决方案 requests 2.13.0 版本的 https 连接慢漏问题 问题背景&#xff1a;在使用requests 2.13.0版本时&#xff0c;发现存在一个缓慢的泄漏问题。这个问题只在使用https连接时出现。经过调查&#xff0c;发现这个问题与pyOpenSSL的使用有关。在使用pyOpenSSL与requests 2.…

001 opencv addWeighted

目录 一、环境 二、addWeighted函数 三、代码演示 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、addWeighted函数 OpenCV中的cv.addWeighted函数是一个用于图像叠加的函数&#xff0c;它可以将两个具有相同尺寸和类型的图像按…

飞天使-django之数据库简介

文章目录 增删改查解决数据库不能存储中文问题创建表数据类型表的基本操作主键唯一键 unique外键实战 增删改查 四个常用的语句查询 : insert delete update select insert into student(Sno,name) values(95001,"张三") delete from student where name张三 upda…

分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测

分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测 目录 分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现PSO…

Java获取Jar、War包路径,并生成可编辑修改的本地配置文件

前言 本地的可修改配置文件的编写理应是一个很常用的功能&#xff0c;但由于数据库的存在&#xff0c;它鲜少被提及&#xff0c;大多数我们直接存储到数据库中了。 以至于现今&#xff0c;除了没接触数据库的新手时常使用它以外&#xff0c;它没有太多的出场机会。 也因此&am…

vue手动搭建脚手架(保姆式教案)

目录 1.创建项目 1.node.js环境搭建 2.安装vue-cli 3.搭建项目 目录结构 1.创建项目 1.node.js环境搭建 下载安装node.js&#xff08;Download | Node.js&#xff09;&#xff0c;安装时不要安装在C盘Windowsr打开cmd管理工具开始输入命令检查node.js是否安装和版本号&a…

051-第三代软件开发-日志容量时间限制

第三代软件开发-日志容量时间限制 文章目录 第三代软件开发-日志容量时间限制项目介绍日志容量时间限制 关键字&#xff1a; Qt、 Qml、 Time、 容量、 大小 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;Qt Meta-Object Language…

CentOS停更在即,国内厂商该如何应对?KeyarchOS X2Keyarch 迁移体验

一、CentOS 停更危机二、关于浪潮信息KeyarchOS三、浪潮信息 KeyarchOS License 应用迁移实践第一步&#xff1a;迁移前验证第二步&#xff1a;迁移第三步&#xff1a;迁移后验证 四、写在最后 一、CentOS 停更危机 自 1993 年开始&#xff0c;红帽 Linux 已经陪伴开发者们走过…

VUE基础的一些实战总结

目录 创建一个 Vue 应用 步骤 1&#xff1a;安装 Node.js 和 npm 步骤 2&#xff1a;安装 Vue CLI 步骤 3&#xff1a;创建 Vue 项目 步骤 4&#xff1a;启动开发服务器 步骤 5&#xff1a;访问应用程序 步骤 6&#xff1a;编辑 Vue 应用 步骤 7&#xff1a;构建和部署…

论文绘图-机器学习100张模型图

在现代学术研究和技术展示中&#xff0c;高质量的图表和模型结构图是至关重要的。这尤其在机器学习领域更为显著&#xff0c;一个领域以其复杂的算法和复杂的数据结构而闻名。机器学习是一种使用统计技术使计算机系统能够从数据中学习和改进其任务执行的方法&#xff0c;而有效…

算法分析与设计考前冲刺 阅读

拜读我胡哥的精品复习资料 acmack 胡哥发表重要讲话&#xff0c;强调算法的重要性&#xff0c;我等深受触动。 Map&#xff1a;底层是红黑树&#xff0c;按照key自动进行排序 list&#xff1a; 线性链表 我一直单纯的觉得list是列表&#xff0c;这不仅说明了胡哥与我的技术…

C++标准模板(STL)- 类型支持 (属性查询,获取类型的对齐要求)

类型特性 类型特性定义一个编译时基于模板的结构&#xff0c;以查询或修改类型的属性。 试图特化定义于 <type_traits> 头文件的模板导致未定义行为&#xff0c;除了 std::common_type 可依照其所描述特化。 定义于<type_traits>头文件的模板可以用不完整类型实例…

CentOS to KeyarchOS 系统迁移体验

1. KOS(KeyarchOS)——云峦操作系统简介 KeyarchOS 即云峦操作系统(简称 KOS)是浪潮信息基于 Linux 内核、龙蜥等开源技术自主研发的一款服务器操作系统&#xff0c;支持x86、ARM 等主流架构处理器&#xff0c;广泛兼容传统 CentOS 生态产品和创新技术产品&#xff0c;可为用户…

一个前端非侵入式骨架屏自动生成方案

目录 背景 现有方案调研 侵入业务式手写代码 非侵入业务式手写代码 非侵入式骨架屏代码自动生成 技术方案 设计原则 架构图 骨架屏生成 骨架屏注入 优化点 部分技术细节解析 puppeteer 文本块处理 图片块处理 a 标签处理 自定义属性处理 首屏HTML处理 首屏样…

用照片预测人的年龄【图像回归】

在图像分类任务中&#xff0c;卷积神经网络 (CNN) 是非常强大的神经网络架构。 然而&#xff0c;鲜为人知的是&#xff0c;它们同样能够执行图像回归任务。 图像分类和图像回归任务之间的基本区别在于分类任务中的目标变量&#xff08;我们试图预测的东西&#xff09;不是连续…

WireGuard 组网教程:快速构建安全高效的私密网络并实现内网穿透

文章目录 1 引言1.1 什么是WireGuard1.2 WireGuard可以用来做什么1.3 WireGuard原理1.4 WireGuard安装 2 WireGuard组网实现内网穿透2.1 前提条件2.2 网络拓扑结构2.3 具体步骤2.3.1 中继服务器配置2.3.2 其他peer2.3.3 测试 2.4 WireGuard配置文件说明 3 WireGuard工具3.1 wg-…

智慧环保:科技驱动下的环境保护新篇章

智慧环保&#xff1a;科技驱动下的环境保护新篇章 环境保护已经成为当今社会的重要议题&#xff0c;而科技的飞速发展为我们开启了智慧环保的新篇章。在这篇文章中&#xff0c;我们将介绍智慧环保所带来的机会和创新&#xff0c;以及科技在环境保护中的重要作用。 智慧环保的理…

Topaz Video AI:引领视频质量革命,让您的内容焕发新生

随着数字媒体的日益普及&#xff0c;视频质量的重要性日益凸显。无论是个人用户还是专业团队&#xff0c;都需要确保他们的视频内容具有最佳的质量。但是&#xff0c;由于各种原因&#xff0c;如设备限制、环境干扰等&#xff0c;往往导致视频质量不尽如人意。这时&#xff0c;…

基于SSM的员工信息管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…