Skip to content

TATEN Commit 信息规范

简述

提交信息应该用以下格式填写:

plain
<类型>[可选 范围]: <简介>

[可选 详细内容]

[可选 脚注]

该提交包含以下元素,旨在向库的使用者传达意图:

  • fix:类型为 fix 的提交会修复代码库中的错误
  • feat:类型为 feat 的提交会向代码库引入新功能
  • perf:类型为 perf 的提交会提高代码库的性能
  • refactor:类型为 refactor 的提交会重构代码库的代码,但不添加新功能或修复错误
  • docs:类型为 docs 的提交会改变文档
  • test:类型为 test 的提交会改变测试代码
  • style:类型为 style 的提交会改变代码库的样式,如空格、分号、逗号等
  • chore:类型为 chore 的提交会改变构建过程或辅助工具
  • build:类型为 build 的提交会改变构建系统或依赖项
  • ci:类型为 ci 的提交会改变 CI 配置或脚本
  • revert:类型为 revert 的提交会撤销之前的提交
  • release:类型为 release 的提交是发布新版本的提交
  • BREAKING CHANGE: 带有 BREAKING CHANGE 结尾或在类型或作用域后附加 ! 的提交会引入重大 API/ABI 变更
  • 除了 BREAKING CHANGE 外,还可以提供其他页脚,如 fix #1919810

提交规范并未强制要求添加其他类型。 同时您可以为提交类型指定作用域,用于提供额外的上下文信息,作用域应包含在括号内,例如:feat(parser): 添加解析数组的功能

详细说明

  1. 提交必须以类型作为前缀,类型由名词 featfix 等组成,后跟可选的作用域、可选的感叹号 ! 以及必需的终止冒号和空格
  2. 当提交操作向应用程序或库添加新功能时,必须使用类型 feat
  3. 当提交代表修复应用程序中的错误时,必须使用类型 fix
  4. 当提交代表提高应用程序的性能时,必须使用类型 perf
  5. 当提交代表重构应用程序的代码时,必须使用类型 refactor
  6. 当提交代表改变文档时,必须使用类型 docs
  7. 当提交代表改变测试代码时,必须使用类型 test
  8. 当提交代表改变代码库的样式时,必须使用类型 style
  9. 当提交代表改变构建过程或辅助工具时,必须使用类型 chore
  10. 当提交代表改变构建系统或依赖项时,必须使用类型 build
  11. 当提交代表改变 CI 配置或脚本时,必须使用类型 ci
  12. 当提交代表撤销之前的提交时,必须使用类型 revert
  13. 当提交代表发布新版本时,必须使用类型 release
  14. 当提交代表引入重大 API/ABI 变更时,必须使用类型 BREAKING CHANGE
  15. 类型之后可以指定作用域。作用域必须由一个名词组成,该名词描述代码库中的某个部分,并用括号括起来,例如: fix(parser)
  16. 类型/作用域前缀后的冒号和空格后必须紧跟描述。描述是对代码更改的简短总结,例如: fix: 字符串中包含多个空格时数组解析出现的问题
  17. 在简短的提交描述之后,可以提供更长的提交正文,提供有关代码更改的更多上下文信息。提交详细内容必须在提交描述之后空一行开始
  18. 提交详细内容是自由格式的,可​​以由任意数量的以换行符分隔的段落组成。
  19. 页脚标记必须使用连字符 - 代替空格字符,例如 Acked-by(这有助于将页脚部分与多段落正文区分开来)。但 BREAKING CHANGE 除外,它也可以用作标记。
  20. 页脚的值可以包含空格和换行符,解析必须在遇到下一个有效的页脚标记/分隔符对时终止。
  21. 必须在提交的类型/范围前缀中注明重大变更,或者在页脚中注明
  22. 构成常规提交的信息单元必须由实施者区分大小写,但 BREAKING CHANGE 必须大写。

示例

包含描述和重大变更页脚的提交消息

plain
feat: 允许配置对象继承其他配置对象

BREAKING CHANGE: 配置文件中 `extends` 键现在被用于继承其他配置文件

使用感叹号 ! 提交信息,以引起对重大变更的注意

plain
feat!: 在商品开始运输时向用户发送邮件

提交信息,但内容为空

plain
style: 添加缺失的分号

提交消息及范围

plain
fix(parser): 添加解析数组的功能

包含多段正文和多个页脚的提交消息

plain
fix: 防止请求竞态

引入请求 ID 和对最新请求的引用。同时忽略除最新请求之外的所有传入响应。

移除之前用于缓解竞态条件但现已过时的超时机制。

审阅: XinHallow
引用: #114514

此提交规范由 Conventional Commits 衍生