-
Notifications
You must be signed in to change notification settings - Fork 2
协作规则
Gavin Wang edited this page Sep 25, 2018
·
1 revision
https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines
<type>(<scope>): <subject> # 必填,其中的 scope 是可选的
<BLANK LINE>
<body> # 可选,每行长度不的超过 100 个字符
<BLANK LINE>
<footer> # 可选
feat |
新功能 A new feature |
fix |
bug 修复 A bug fix |
docs |
文档 Documentation only changes |
style |
格式调整 Changes that do not affect the meaning of the code (white-space, formatting, etc) |
refactor |
重构 A code change that neither fixes a bug nor adds a feature |
perf |
性能优化 A code change that improves performance |
test |
测试 Adding missing tests or correcting existing tests |
build |
编译配置 Changes that affect the build system, CI configuration or external dependencies |
chore |
杂项 Other changes that don't modify src or test files |
用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。
subject 是 commit 目的的简短描述,写法上须注意以下几点:
- 以动词开头,使用第一人称现在时:
change
notchanged
norchanges
- 首字母不要用大写
- 末尾不要叫句号
.
如有不兼容变动必须在 footer 部分说明,另外关闭 issues 的指令也写在 footer 里。
不兼容变动以 BREAKING CHANGE:
开头,后面是对变动的描述以及变动理由和迁移方法。
如果提交修复了 issue,那么以 Closes
开头,后面跟 Issue编号,如 Closes #123, #321
BREAKING CHANGE: isolate scope bindings definition has changed.
To migrate the code follow the example below:
The removed `inject` wasn't generaly useful for directives so there should be no code using it.
Closes #123, #245, #992
还有一种特殊情况,如果当前 commit 用于撤销以前的 commit,则必须以 revert:
开头,后面跟着被撤销 Commit 的 Header。
Body 部分的格式是固定的,必须写成 This reverts commit <hash>
,其中的 hash 是被撤销 commit 的 SHA 标识符。
revert: feat(pencil): add 'graphiteWidth' option
This reverts commit 667ecc1654a317a13331b17617d973392f415f02.
Commitizen是一个撰写合格 Commit message 的工具。安装及使用方法如下:
$ npm install -g commitizen # 全局安装
$ commitizen init cz-conventional-changelog --save-dev --save-exact # 初始化项目 commitizen 相关配置
$ git cz # 以后,凡是用到 git commit 命令的地方一律改为使用 git cz
使用中发现输入多行 description 时,不知道怎么换行,Ctrl/Shift + Enter 试了都不行,最后发现应该用 \n\n
这样是能解决换行问题,但对其处理不直观,所以多行输入还是 git commit
调出文本编辑器来编辑比较靠谱。