规范的Git提交说明
-
提供更多的历史信息,方便快速浏览
-
可以过滤某些
commit
,便于筛选代码review
-
可以追踪
commit
生成更新日志 -
可以关联issues
Git
提交说明结构
Git
提交说明可分为三个部分:Header
、Body
和Footer
。
<Header> <Body> <Footer>
Header
Header
部分包括三个字段type
(必需)、scope
(可选)和subject
(必需)。
<type>(<scope>): <subject>
Vue源码的提交说明省略了
scope
。
1、type
type
用于说明 commit
的提交性质。
值 | 描述 |
---|---|
feat | 新增一个功能 |
fix | 修复一个Bug |
docs | 文档变更 |
style | 代码格式(不影响功能,例如空格、分号等格式修正) |
refactor | 代码重构 |
perf | 改善性能 |
test | 测试 |
build | 变更项目构建或外部依赖(例如scopes: webpack、gulp、npm等) |
ci | 更改持续集成软件的配置文件和package中的scripts命令,例如scopes: Travis, Circle等 |
chore | 变更构建流程或辅助工具 |
revert | 代码回退 |
2、scope
scope
说明commit
影响的范围。scope
依据项目而定,例如在业务项目中可以依据菜单或者功能模块划分,如果是组件库开发,则可以依据组件划分。
提示:
scope
可以省略。
3、subject
subject
是commit
的简短描述。
Body
commit
的详细描述,说明代码提交的详细说明。
Footer
如果代码的提交是不兼容变更或关闭缺陷,则Footer
必需,否则可以省略。
Commitizen
commitizen是一个帮助规范commit message的工具,它可以帮我们控制 commit 的格式,并让提交复杂格式时比git commit -m
更加容易,使用它提交git commit的样子如下图:
基本使用:
安装 commitizen :
npm install -g commitizen
安装好后,需要安装一个adapter来定义希望使用的 commit message 格式。如果使用上面的 anjular 的规范,可以使用cz-conventional-changelog
这个 adapter 。通过 commitizen 提供的命令行工具去初始化项目中希望使用的 adapter 。在项目目录下执行:
commitizen init cz-conventional-changelog --save-dev --save-exact
这个命令会帮我们在项目中安装 cz-conventional-changelog 并在 package.json 中添加如下内容:
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
}
之后,全局安装了 commitizen 的朋友就可以通过git cz
命令代替git commit
命令,从而调出如下图的界面,根据界面提示输入 commit 信息并提交。