【Git】Conventional Commit提交规范

Conventional Commit提交规范

说明

在Git规范中,提交信息(commit message)通常按照某个约定来编写,以提供更多上下文,帮助团队成员理解每次提交的目的。一种广泛使用的约定是Conventional Commits规范,它推荐的提交信息格式如下:

<type>[optional scope]: <description>[optional body][optional footer(s)]

其中,<type>字段表明了提交的类别,用以告知团队这次提交改变了代码库的哪一部分或做了什么类型的更改。常见的type类别包括:

  • feat:表示实现了一个新的特性(feature)。例如,添加了一个新的按钮或新功能。

  • fix:表示修复了一个bug。例如,修复了导致程序崩溃的错误。

  • docs:文档的改动。例如更新了README文件。

  • style:代码样式的改动,注意这并不影响代码运行的逻辑。

  • refactor:代码重构。既没有新增功能,也没有修复bug。

  • perf:性能提升相关的代码改动。

  • test:增添测试或修正现有的测试。

  • chore:对构造过程或辅助工具和库的更改(不影响源文件、测试案例)。

  • ci:持续集成相关的改动。

  • build:影响构建系统或外部依赖关系的修改,例如gulp、webpack、npm的配置文件。

  • revert:撤销前一次提交。

需要注意的事项:

  1. 提交信息要清晰、简洁,尽可能在第一行就概括这次提交的主旨。

  2. <type>字段要小写,并且与冒号之间要有空格。

  3. 针对featfix类型的提交,它们经常出现在版本更迭时,因此要确保描述足够明了,以便自动生成CHANGELOG。

  4. 当提交随着时间累积变得太多,遵循规范的提交信息使得团队成员易于追踪和理解代码变动历史。

  5. 如果需要,可以加上作用域(scope)来提供额外的上下文,例如针对某个特定模块或组件的更改。

  6. 可以使用工具来强制实施提交消息规范,比如commitlinthusky

  7. 后续追查问题时,根据规范编写的提交信息可以快速定位相关的更改。

通过遵守一个统一的提交信息写作规范,整个团队将获益于更加有组织、可读性更高的项目历史记录。

示例

以下是根据Conventional Commits规范,每种<type>的提交信息示例:

  • feat(特性):

    git commit -m "feat(authentication): add JWT token service"
    

    这个提交信息告诉我们添加了一个新的JWT令牌服务。

  • fix(修复):

    git commit -m "fix(login): resolve issue where session expires prematurely"
    

    表示修复了一个在登录模块中会导致会话过早到期的问题。

  • docs(文档):

    git commit -m "docs(readme): update installation instructions"
    

    更新了安装说明部分的README文件。

  • style(样式):

    git commit -m "style: format code with prettier"
    

    使用Prettier格式化代码样式,没有改变代码逻辑。

  • refactor(重构):

    git commit -m "refactor(store): simplify state management logic"
    

    简化了状态管理逻辑。

  • perf(性能):

    git commit -m "perf(image-loader): improve image loading speed by 50%"
    

    提高了图像加载速度50%。

  • test(测试):

    git commit -m "test(api): add tests for user service"
    

    为用户服务添加测试案例。

  • chore(琐事):

    git commit -m "chore: update package.json dependencies"
    

    更新了package.json文件中的依赖信息。

  • ci(持续集成):

    git commit -m "ci: add lint stage to CI pipeline"
    

    在CI流水线中增加代码lint检查阶段。

  • build(构建):

    git commit -m "build(webpack): add sourcemap support for development build"
    

    为开发构建添加了源码映射(sourcemap)支持。

  • revert(回滚):

    git commit -m "revert: feat(pagination): custom pagination component"
    

    回滚之前添加的自定义分页组件特性。

这些是按照Conventional Commits规范编写的提交信息示例,让你的团队和后来者更容易理解代码库历史。请注意替换括号内具体描述为你自己的实际情况。

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

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

相关文章

Windows Server 2025 LTSC 预览版来了

Windows Server 2025 LTSC 预览版来了 1. 安装 Windows Server 2025 LTSC 预览版2. 安装 VMware Tools3. Windows Server 2025 LTSC 预览版4. Windows Server 2025 LTSC 预览版下载地址 1. 安装 Windows Server 2025 LTSC 预览版 使用 VMware Workstation 安装&#xff0c; 安…

推特账号被冻结怎么办?检查IP是否正常

Twitter 拥有庞大的用户群和日常内容流&#xff0c;是沟通、网络和营销的重要平台。然而&#xff0c;处理其限制和潜在的帐户问题可能很棘手。有许多跨境社媒小伙伴反馈&#xff0c;账号无故被冻结&#xff0c;导致内容与客户尽失&#xff01;其实除了账户养号、被举报、广告信…

Mac+Android Studio配置 Flutter环境

Fluttrer中文下载官网 Flutter下载官网 1、环境变量 .zshrc #Flutter export PUB_HOSTED_URL"https://pub.flutter-io.cn" export FLUTTER_STORAGE_BASE_URL"https://storage.flutter-io.cn" export FLUTTER_HOME/Users/leon/Flutter/flutter_3_10_4/f…

SpringBoot项目接入MQTT协议

mqtt是一种类似于mq的通讯技术 1、mqtt服务端搭建 创建docker网络 docker network create --driver bridge --subnet 172.18.0.0/24 --gateway 172.18.0.1 emqx-net创建容器 docker run -d \--name emqx1 \-e "EMQX_NODE_NAMEemqx172.18.0.2" \--network emqx-ne…

js实现填涂画板

文章目录 1实现效果2 实现代码 凑个数&#xff0c;存粹是好玩儿&#xff0c;哈哈... 1实现效果 最上方一栏&#xff1a; 左侧是颜色按钮&#xff0c;点击选中颜色&#xff0c; 中间是功能按钮&#xff0c;重置颜色、清空画板、回退、涂改液&#xff08;填涂色置为白色&#xff…

【iOS ARKit】光照估计

光照估计 AR与VR 在光照上最大的不同在于VR 世界是纯数字世界&#xff0c;有一套完整的数学模型&#xff0c;而AR则是将计算机生成的虚拟物体或关于真实物体的非几何信息叠加到真实世界的场景之上实现对真实世界的增强&#xff0c;融合了真实世界与数字世界。就光照而言&#x…

uniapp - editor 富文本的使用

目录 editor 组件 属性说明 editorContext uni.createSelectorQuery() SelectorQuery selectorQuery.in(component) selectorQuery.select(selector) selectorQuery.selectAll(selector) selectorQuery.selectViewport() selectorQuery.exec(callback) NodesRef nod…

STM32 有源蜂鸣器

模块介绍: 结构&#xff1a;有源蜂鸣器通常由一个振膜和一个驱动电路组成。振膜是负责产生声音的部分&#xff0c;而驱动电路则负责控制振荡频率和幅度。 工作原理&#xff1a;有源蜂鸣器的驱动电路会向振膜施加电压&#xff0c;使其振动产生声音。驱动电路可以根据输入信号的…

ChatGPT升级,价格降低,不再懒惰!

OpenAI 1月26号宣布推出5种新模型&#xff0c;包括两款新的嵌入式模型、更新后的 GPT-4 Turbo 预览模型、GPT-3.5 Turbo 模型以及文本审核模型。 此外&#xff0c;chatgpt的价格也有低至50%的下降。新模型的输入价格下降 50% 至 $0.0005 /1K tokens&#xff0c;输出价格下降 2…

借助gpt生成ppt:文心一言(chatgpt)、chatppt

提供一种简单的基于gpt快速生成ppt的方式。前置条件&#xff1a; 文心一言chatpptwps/office ppt Step1: 下载chatppt插件 https://chat-ppt.com/invitelinke?share_code47949695&channelchat-ppt.com 注册地址 下载完成后&#xff0c;安装即可&#xff0c;安装完成后…

MyBatis框架-XML映射器

文章目录 XML映射器CRUD操作select根据id查询用户根据名字和密码查询方法一&#xff1a;使用对象UserMapper.javaUserMapper.xml测试用例方法二&#xff1a;使用MapUserMapper.javaUserMapper.xml测试用例方法三&#xff1a;方法种传递参数UserMapper.javaUserMapper.xml测试用…

如何看待开发者是否需要入坑鸿蒙?

前言 自打华为2019年发布鸿蒙操作系统以来&#xff0c;网上各种声音百家争鸣。尤其是2023年发布会公布的鸿蒙4.0宣称不再支持Android&#xff0c;更激烈的讨论随之而来。 通过本文&#xff0c;我将给大家介绍以下几点&#xff0c;让大家清楚的了解到鸿蒙开发的趋势&#xff1…

win11设置mysql开机自启

目录 命令式 1、打开命令提示符或 PowerShell&#xff1a; 2、使用管理员权限运行命令行工具&#xff1a; 3、设置 MySQL 服务为开机自启动&#xff1a; 4、启动 MySQL 服务&#xff1a; 5、 验证设置是否生效&#xff1a; 操作视图式 1、右击任务栏 ---> 选择任务管…

深入了解DRAM和SDRAM:内存带宽的计算与封装形式的奥秘

SSD SDRAM DDR SDRAM简介 动态随机存取存储器DRAM&#xff08;Dynamic Random Access Memory&#xff0c;DRAM&#xff09;是一种半导体存储器。 其主要的作用原理是利用电荷内存储电荷的数量来代表一个二进制比特&#xff08;bit&#xff09;是1还是0。 由于在现实中品体管…

【物联网之·协议·ZigBee】

系列文章目录 文章目录 前言一、ZigBee技术概述1.1 ZigBee的起源和发展历程1.2 ZigBee的工作原理和网络拓扑结构1.3 ZigBee的应用领域和主要优势 二、ZigBee协议栈2.1 Zigbee的协议栈结构和各层功能2.2 Zigbee协议栈的协议消息和数据格式 三、ZigBee网络配置3.1 Zigbee网络的组…

嵌⼊式⾯试宝典

编程功底问题 1. 简单描述下C语⾔中⼤⼩端的概念 ⼤⼩端是⼀种计算机存储数据的⽅式,它决定了在内存中如何排列多字节数据的字节顺序。 ⼤端:多字节数据的⾼位字节存储在内存的低地址处。 ⼩端:多字节数据的低位字节存储在内存的低地址处。 8051 stc单⽚机是⼩端模式 …

进京证12次不够用怎么办?(北京进京证探头分布,进京证365,进京365)外地车在京如何行驶——躲猫猫外地车在京地图导航

其实想要在北京驾驶外地牌照的车辆主要有两种方式&#xff0c;一种是办理进京证(六环内进京证一年只能办12次&#xff0c;一次有效期7天&#xff0c;所以大多数人是不够用的);另一种就是在非监控区域行驶&#xff0c;可以借助于一些摄像头定位工具&#xff0c;有效躲避摄像头&a…

洗地机哪个牌子好?2024洗地机推荐

洗地机作为一种几乎替代了传统无线吸尘器的清洁工具&#xff0c;近年来在市场上迅速崛起。其优越的清洁效果和智能化设计使其成为许多家庭不可或缺的家电之一。在短短的几年时间里&#xff0c;市场上涌现出了各种各样的品牌和型号&#xff0c;价格也从几百元到数千元不等&#…

LVGL部件

一.标签部件 1.如何创建标签部件以及设置文本 ![2024-01-28T09:54:08.png][3] void my_lvgl(void) {lv_obj_t *lablelv_label_create(lv_scr_act()); //创建一个标签lv_label_set_text(lable,"hello"); //普通更改文字lv_label_set_text_fmt(lab…

【C语言】(9)分支结构

一.if-else 语句 if-else 适用于简单和复杂的条件判断。 a. 基本 if 语句 用途&#xff1a;基本的条件测试。语法&#xff1a;if (condition) {// 代码块 }示例&#xff1a;if (score > 60) {printf("及格\n"); }b. if-else 语句 用途&#xff1a;二选一的条件…