Skip to content

协作规则

Gavin Wang edited this page Sep 25, 2018 · 1 revision

协作规则

Git 提交规范

https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines

Commit Message Format

<type>(<scope>): <subject>     # 必填,其中的 scope 是可选的
<BLANK LINE>
<body>                         # 可选,每行长度不的超过 100 个字符
<BLANK LINE>
<footer>                       # 可选

Type

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

Scope

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

Subject

subject 是 commit 目的的简短描述,写法上须注意以下几点:

  • 以动词开头,使用第一人称现在时: change not changed nor changes
  • 首字母不要用大写
  • 末尾不要叫句号 .

Body

Footer

如有不兼容变动必须在 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

Revert

还有一种特殊情况,如果当前 commit 用于撤销以前的 commit,则必须以 revert: 开头,后面跟着被撤销 Commit 的 Header。

Body 部分的格式是固定的,必须写成 This reverts commit <hash>,其中的 hash 是被撤销 commit 的 SHA 标识符。

revert: feat(pencil): add 'graphiteWidth' option

This reverts commit 667ecc1654a317a13331b17617d973392f415f02.

Commitizen

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 调出文本编辑器来编辑比较靠谱。

Clone this wiki locally