当前位置:网站首页>代码提交规范
代码提交规范
2022-06-28 07:10:00 【Windyº】
fix: 类型 为 fix 的提交表示在代码库中修复了一个 bug(这和语义化版本中的 PATCH 相对应)。feat: 类型 为 feat 的提交表示在代码库中新增了一个功能(这和语义化版本中的 MINOR 相对应)。- BREAKING CHANGE: 在可选的正文或脚注的起始位置带有 BREAKING CHANGE: 的提交,表示引入了破坏性变更(这和语义化版本中的 MAJOR 相对应)。破坏性变更可以是任意 类型 提交的一部分。对于 fix:、feat: 和 chore:,乃至更多其它的 类型 而言,它都是有效的。
- 其它在 fix: 和 feat: 之外的提交 类型 也都是支持的,例如 Angular 约定 中推荐使用 docs:、style:、refactor:、perf:、test:、chore:,但这些标签在约定式提交规范中并不是强制性的。
其他标签含义:
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动
约定式提交规范
本文档中的关键词 “必须”、“禁止”、“需要”、“应当”、“不应当”、“应该”、“不应该”、“推荐”、“可以” 和 “可选” 应按照 RFC 2119 的描述解释。
- 每个提交都必须使用类型字段前缀,这由一个形如 feat 或 fix 的名词组成,其后接冒号和空格。
- 当一个提交为应用或类库实现了新特性时,必须使用 feat 类型。
- 当一个提交为应用修复了 bug 时,必须使用 fix 类型。
- 可选的作用域字段可以在类型后提供。作用域是描述代码库中某个部分的词组,封装在括号中,形如 fix(parser): 等。
- 描述字段必须紧接在类型或作用域前缀之后。描述指的是对代码变更的简短描述,形如 fix: array parsing issue when multiple spaces were contained in string.
- 在简短描述之后,可以编写更长的提交正文,为代码变更提供额外的上下文信息。正文必须起始于描述字段结束的一个空行后。
- 在正文结束的一个空行后,可以编写脚注(如果正文缺失,可以编写在描述之后)。脚注应当为代码变更包含额外的 issue 引用信息(例如它所修复的 issue,类似 Fixes #13 等)。
- 破坏性变更必须在提交的正文或脚注加以展示。一个破坏性变更必须包含大写的文本 BREAKING CHANGE,紧跟冒号和空格。
- 在 BREAKING CHANGE: 之后必须提供描述,以描述对 API 的变更。例如 BREAKING CHANGE: environment variables now take precedence over config files.
- 脚注必须只包含 BREAKING CHANGE、外部链接、issue 引用和其它元数据信息。
- 在提交说明中,可以使用 feat 和 fix 之外的类型。
为什么使用约定式提交
- 自动化生成 CHANGELOG。
- 基于提交的类型,自动决定语义化的版本变更。
- 向同事、公众与其他利益关系人传达变化的性质。
- 触发构建和部署流程。
- 让人们更容易地探索结构化的提交历史,降低贡献项目的难度。
边栏推荐
- [rust translation] implement rust asynchronous actuator from scratch
- Self discipline challenge 30 days
- 编译原理期末复习
- R 语言 Kolmogorov-Smirnov 检验 2 个样本是否遵循相同的分布。
- 【Rust日报】2020-05-24 Rash, Rocket, Mun, Casbin
- Evolution of vivo push platform architecture
- Huawei cloud computing physical node cna installation tutorial
- Optimization steps of SQL statements (II) -- MySQL statement optimization
- 2021 VDC: technological architecture evolution of vivo Internet service for 100 million users | PPT download attached
- Makefile
猜你喜欢
![[digital statistics DP] counting problem](/img/8d/ac05c1a88543b76fca86cd744e9cb1.jpg)
[digital statistics DP] counting problem

Kubernetes cluster lossless upgrade practice

【C语言】详解 C 语言获取数组长度

Evolution of vivo push platform architecture

LeetCode+ 66 - 70 高精度、二分专题
![[C language] detailed explanation of C language to obtain array length](/img/cf/75c314bb622b8a1745f43cc07cb02e.png)
[C language] detailed explanation of C language to obtain array length

JS regular expression system explanation (comprehensive summary)

Devtools implementation principle and performance analysis practice

推荐10个好用到爆的Jupyter Notebook插件,让你效率飞起

MySQL installation steps - how to create a virtual machine under Linux (1)
随机推荐
PLC -- 笔记
BACnet/IP网关如何采集楼宇集中控制系统数据
「杰伦熊」暴跌96.6% 明星带货NFT为何遇冷?
Leetcode+ 51 - 55 retrospective and dynamic planning topics
LeetCode+ 51 - 55 回溯、动态规划专题
【Rust翻译】从头实现Rust异步执行器
Iphone6plus enters the list of antique products netizen: I'm still using it
Huawei cloud computing physical node cna installation tutorial
小程序页面设置100%高度还是留白怎么办?
【网络教程】IPtables官方教程--学习笔记1
R 和 rgl 绘制 3D 结
华为云计算之物理节点CNA安装教程
编译配置in文件
FPM tool installation
Freeswitch sets the maximum call duration
未来互联网人才还稀缺吗?哪些技术方向热门?
调接口事件API常用事件方法
"Jay bear" plummeted by 96.6%. Why is NFT with star goods cold?
Vivo browser rapid development platform practice - Overview
C语言教程大全