# commit 提交规范

一种用于给提交信息增加人机可读含义的规范。

参照规范:

# 结构

提交说明的结构如下所示:

<类型>[可选的作用域]: <描述>
[可选的正文]
[可选的脚注]

提交说明包含了下面的结构化元素,以向类库使用者表明其意图:

  • fix:修复了bug。
  • feat:新增了功能。
  • BREAKING CHANGE:在可选的正文或脚注的起始位置带有BREAKING CHANGE:,表示引入了破坏性API变更。破坏性变更可以是任意类型提交的一部分。
  • chore:其它改动,例如注释修改或者文件清理。不影响src和test代码文件都可以放这里。
  • ci:持续集成修改。
  • perf:优化相关,比如提升性能、体验等。
  • docs:修改文档。
  • style:修改代码格式。
  • test:修改测试用例。
  • refactor:重构功能。
  • revert:回滚功能。
  • merge:代码合并。
  • sync:同步主线/分支的bug。
  • misc:其他修改,比如依赖管理等。

类型参照:commit lint (opens new window)sees parkbox (opens new window)

# 范围scope

主要指代码的影响面,一般没有强制要求。但是团队可以按照自己的理解进行设计。通常有『技术纬度』和『业务纬度』两种划分方式。

按照技术分为:controllerdtoservice等。

按照业务分为:userorder等。

不填写范围也是可以的。

# 示例

包含了描述以及正文内有破坏性变更的提交说明

feat: allow provided config object to extend other configs
BREAKING CHANGE: `extends` key in config file is now used for extending other config files

包含了可选!字符以提醒注意破坏性变更的提交说明

chore!: drop Node 6 from testing matrix
BREAKING CHANGE: dropping Node 6 which hits end of life in April

不包含正文的提交说明

docs: correct spelling of CHANGELOG

包含作用域的提交说明

feat(lang): add polish language

为fix编写的提交说明,包含(可选的)issue编号

fix: correct minor typos in code
see the issue for details on the typos fixed
closes issue #12

# 为什么使用约定式提交

  • 自动化生成CHANGELOG。
  • 基于提交的类型,自动决定语义化的版本变更。
  • 向同事、公众与其他利益关系者传达变化的性质。
  • 触发构建和部署流程。

# 辅助工具

通过一些辅助工具,可以高效地帮助我们提交规范的commit。

最近更新时间: 2023/3/21 19:40:56