规范化的优点:

  1. 可读性好,清晰,不必深入看代码即可了解当前 commit 的作用
  2. 为 Code Reviewing 做准备
  3. 方便跟踪工程历史
  4. 可以直接从 commit 生成 change log
  5. 提高项目的整体质量,提高个人工程素质

Commit message 格式

标准的 commit message 包括三个部分:Header,Body 和 Footer。

  1. <type>(<scope>): <subject>
  2. // 空一行
  3. <body>
  4. // 空一行
  5. <footer>
  6. # 其中,Header 是必需的,Body 和 Footer 可以省略。

为了方便使用,在提交的的时候省略 Body 和 Footer 的部分,且不限制中英文。

规范示例如下:

<type>(<scope>): <subject>
# 注意冒号':'为英文格式下的冒号,且后别有空格
# 如:feat(miniprogram): 增加了小程序模板消息相关功能
# 如:fix: 修复列表加载失败的问题

Header 部分包括三个字段:type(必需)、scope(可选)和subject(必需)。

(1)type

type 用于说明 commit 的类别,只允许使用下面 11 个标识。

  • add:新增功能
  • feat:新特性
  • fix:修补bug
  • docs:文档(documentation)
  • style:格式(不影响代码运行的变动)
  • refactor:重构(即不是新增功能,也不是修改bug的代码变动)
  • perf:性能优化
  • data:数据相关修改(修改数据脚本或上传数据文件)
  • test:增加测试
  • chore:构建过程或辅助工具的变动
  • update:功能升级
  • delete:删除冗余功能,文件或代码(不影响代码运行)

(2)scope

scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。

(3)subject

subject是 commit 目的的简短描述,不超过 50 个字符,可以使用中文。

  • 以动词开头,使用第一人称现在时,比如change修改,而不是changedchanges
  • 如果为英文,开头第一个字母小写
  • 结尾不加句号(.

Commit message 格式参考:https://github.com/angular/angular/commits/master