Git commit 提交规范

git commit 时根据 Angular Git Commit 提交规范提交 commit ,这样提交历史看起来更加清晰。

模板如下:

1
2
3
4
5
<type>(<scope>): <subject>
<空一行>
<body>
<空一行>
<footer>

commit 头信息 (第一行) 是必填的,其中 <scope> 是可选的。

提交信息的头信息不能超过 52 个字符,内文信息不能超过 72 个字符!这样将使得提交信息在 Github 和各种 Git 工具中更容易阅读。

type

提交 commit 的类型,包括以下几种:

类型 说明
feat 新功能
fix 修复问题
docs 修改文档
style 修改代码格式,不影响代码逻辑 (空格、代码格式化、缺少分号等)
refactor 重构代码,理论上不影响现有功能 (不是修复 bug 或是添加新功能)
perf 提升性能
test 增加或修改测试用例
build 影响构建系统或外部依赖的更改 (如 gulp, broccoli, npm)
ci 更改CI的配置文件和脚本 (如 Travis, Circle, BrowserStack, SauceLabs)
chore 其它类型提交,无关src目录以及test目录
revert 回滚到某一个版本 (带上版本号)

scope

提交 commit 影响的范围 (包括但不限于 doc, middleware, core, config, routes)

subject

用一句话清楚地描述这次提交做了什么。

  • 以动词开头,使用第一人称现在时
  • 不要大写第一个字母
  • 最后没有句号 (.)

常用表述语:

  • add 添加
  • change 改变
  • update 更新
  • remove 移动
  • delete 删除

body

补充 subject,适当增加原因、目的等相关因素,也可不写。与 subject 一样使用祈使句,使用第一人称现在时。

当有非兼容性修改 (BREAKING CHANGE) 或是关闭 Github Issues 时需要有相关信息。

非兼容性修改应该以 BREAKING CHANGE: 开头,然后接一个空格或者两行空行,再写剩余的提交信息。

关联 Issues ,关闭 Issues 也应该写在此处。需要写在单独的一行并以 Closes 开头,如:

Closes #123

或者是关闭多个 Issues

Closes #234, #456, #567

关闭 Pull Request 需要以 PR Close 开头

PR Close #321

更多

查看具体文档

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
fix($compile): [BREAKING_CHANGE] couple of unit tests for IE9

Older IEs serialize html uppercased, but IE9 does not...
Would be better to expect case insensitive, unfortunately jasmine does
not allow to user regexps for throw expectations.

Document change on eggjs/egg#123

Closes #392

BREAKING CHANGE:

Breaks foo.bar api, foo.baz should be used instead

参考资料: