Git常用规范

分支命名规范

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.rhkb.cn/news/195446.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CMakeLists.txt基础指令与cmake-gui生成VS项目的步骤

简介 本博客主要介绍cmake的基本指令&#xff0c;同时&#xff0c;很多使用Visual Studio小白从Gitbub下载项目源码后&#xff0c;看到CMakeLists.txt&#xff0c;不知道如何使用Visual Studio编译源码&#xff1b;针对以上问题&#xff0c;做一下简单操作与解释&#xff0c;方…

Ingress安全网关

目录 文章目录 目录本节实战TCP 流量拆分&#x1f6a9; 实战&#xff1a;TCP 流量拆分-2023.11.15(测试成功) Ingress安全网关Kubernetes Ingress&#x1f6a9; 实战&#xff1a;Kubernetes Ingress-2023.11.15(测试成功) Ingress GatewayIngress Gateway&#x1f6a9; 实战&am…

m1 rvm install 3.0.0 Error running ‘__rvm_make -j8‘

在使用M1 在安装cocopods 前时&#xff0c;安装 rvm install 3.0.0遇到 rvm install 3.0.0 Error running __rvm_make -j8 备注: 该图片是借用其他博客图片&#xff0c;因为我的环境解决完没有保留之前错误信息。 解决方法如下&#xff1a; 1. brew uninstall --ignore-depe…

Java NIO 详解

一、NIO简介 NIO 是 Java SE 1.4 引入的一组新的 I/O 相关的 API&#xff0c;它提供了非阻塞式 I/O、选择器、通道、缓冲区等新的概念和机制。相比与传统的 I/O 多出的 N 不是单纯的 New&#xff0c;更多的是代表了 Non-blocking 非阻塞&#xff0c;NIO具有更高的并发性、可扩…

es head 新增字段、修改字段、批量修改字段、删除字段、删除数据、批量删除数据

目录 一、新增字段 二、修改字段值 三、批量修改字段值 ​四、删除字段 五、删除数据/文档 六、批量删除数据/文档 一、新增字段 put http://{ip}:{port}/{index}/_mapping/{type} 其中&#xff0c;index是es索引、type是类型 数据&#xff1a; {"_doc"…

数据结构与算法之美学习笔记:20 | 散列表(下):为什么散列表和链表经常会一起使用?

目录 前言LRU 缓存淘汰算法Redis 有序集合Java LinkedHashMap解答开篇 & 内容小结 前言 本节课程思维导图&#xff1a; 今天&#xff0c;我们就来看看&#xff0c;在这几个问题中&#xff0c;散列表和链表都是如何组合起来使用的&#xff0c;以及为什么散列表和链表会经常…

window 搭建 MQTT 服务器并使用

1. 下载 安装 mosquitto 下载地址&#xff1a; http://mosquitto.org/files/binary/ win 使用 win32 看自己电脑下载相应版本&#xff1a; 一直安装&#xff1a; 记住安装路径&#xff1a;C:\Program Files\mosquitto 修改配置文件&#xff1a; allow_anonymous false 设置…

【VSCode】Visual Studio Code 下载与安装教程

前言 Visual Studio Code&#xff08;简称 VS Code&#xff09;是一个轻量级的代码编辑器&#xff0c;适用于多种编程语言和开发环境。本文将介绍如何下载和安装 Visual Studio Code。 下载安装包 首先&#xff0c;我们需要从官方网站下载 Visual Studio Code 的安装包。请访…

Docker与VM虚拟机的区别以及Docker的特点

01、本质上的区别 VM(VMware)在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓库&#xff0c;然后再安装应用&#xff1b; Container(Docker容器)&#xff0c;在宿主机器、宿主机器操作系统上创建Docker引擎&#xff0c;在引擎的基础上再安装应…

sqli-labs(Less-4) extractvalue闯关

extractvalue() - Xpath类型函数 1. 确认注入点如何闭合的方式 2. 爆出当前数据库的库名 http://127.0.0.1/sqlilabs/Less-4/?id1") and extractvalue(1,concat(~,(select database()))) --3. 爆出当前数据库的表名 http://127.0.0.1/sqlilabs/Less-4/?id1") …

Prometheus+Grafana环境搭建(window)

PrometheusGrafana环境搭建 1&#xff1a;配置Prometheus 1.1: 下载Prometheus安装包 官方下载地址 找到对应的win版本进行下载并解压 1.2 下载Window数据采集 官方下载地址 下载以管理员运行&#xff0c;安装成功后在服务里会出现一个"windows_exporter"采集…

HCL设备启动失败——已经解决

摸索了一个多小时&#xff0c;终于搞定了&#xff0c;首先HCL这款软件是需要安装Oracle VM Visual Box的&#xff0c;小伙伴们安装的时候记得点击安装Visual Box&#xff1b; 安装完后显示设备不能启动&#xff0c;然后我根据这个 HCL模拟器中Server设备启动失败的解决办法_hc…

【原创】java+swing+mysql校园活动管理系统设计与实现

前言&#xff1a; 本文介绍了一个校园活动管理系统的设计与实现。该系统基于JavaSwing技术&#xff0c;采用C/S架构&#xff0c;使用Java语言开发&#xff0c;以MySQL作为数据库。系统实现了活动发布、活动报名、活动列表查看等功能&#xff0c;方便了校园活动的发布和管理&am…

虚幻C++ day5

角色状态的常见机制 创建角色状态设置到UI上 在MainPlayer.h中新建血量&#xff0c;最大血量&#xff0c;耐力&#xff0c;最大耐力&#xff0c;金币变量&#xff0c;作为角色的状态 //主角状态UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category "Playe Stats&…

Python in Visual Studio Code 2023年11月发布

排版&#xff1a;Alan Wang 我们很高兴地宣布 Visual Studio Code 的 Python 和 Jupyter 扩展将于 2023 年 11 月发布&#xff01; 此版本包括以下公告&#xff1a; 改进了使用 Shift Enter 在终端中运行当前行弃用内置 linting 和格式设置功能对 Python linting 扩展的改进重…

Appium移动自动化测试--安装Appium

Appium 自动化测试是很早之前就想学习和研究的技术了&#xff0c;可是一直抽不出一块完整的时间来做这件事儿。现在终于有了。 反观各种互联网的招聘移动测试成了主流&#xff0c;如果再不去学习移动自动化测试技术将会被淘汰。 web自动化测试的路线是这样的&#xff1a;编程语…

asp.net core mvc之 RAZOR共享指令和标签助手 TagHelpers

一、RAZOR共享指令 RAZOR共享指令&#xff1a;在视图中导入命名空间&#xff0c;执行依赖注入。 RAZOR共享指令是写在 Views目录下的 _ViewImports.cshtml 文件 支持指令如下&#xff1a; addTagHelper 增加标签助手 removeTagHelper 移除标签助手 tagHelperPrefix 标签助手…

防抖-节流-深拷贝-事件总线

一、防抖与节流 1.认识防抖与节流函数 防抖和节流的概念其实最早并不是出现在软件工程中&#xff0c;防抖是出现在电子元件中&#xff0c;节流出现在流体流动中 而JavaScript是事件驱动的&#xff0c;大量的操作会触发事件&#xff0c;加入到事件队列中处理。而对于某些频繁…

【Java 进阶篇】揭秘 JQuery 广告显示与隐藏:打造令人惊艳的用户体验

在当今互联网时代&#xff0c;广告已经成为网页中不可忽视的一部分。然而&#xff0c;如何通过巧妙的交互设计&#xff0c;使广告既能吸引用户的眼球&#xff0c;又不会给用户带来干扰&#xff0c;成为了许多前端开发者需要思考的问题之一。在这篇博客中&#xff0c;我们将深入…

长短期记忆(LSTM)与RNN的比较:突破性的序列训练技术

长短期记忆&#xff08;Long short-term memory, LSTM&#xff09;是一种特殊的RNN&#xff0c;主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说&#xff0c;就是相比普通的RNN&#xff0c;LSTM能够在更长的序列中有更好的表现。 Why LSTM提出的动机是为了解…