规范的Git提交说明
- 提供更多的历史信息,方便快速浏览
- 可以过滤某些
,便于筛选代码commit
review
- 可以追踪
生成更新日志commit
- 可以关联issues
Git
提交说明结构
Git
Git
提交说明可分为三个部分:
Header
、
Body
和
Footer
。
<Header> <Body> <Footer>
Header
Header
Header
部分包括三个字段
type
(必需)、
scope
(可选)和
subject
(必需)。
<type>(<scope>): <subject>
Vue源码的提交说明省略了 scope
1、type
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
2、scope
scope
说明
commit
影响的范围。
scope
依据项目而定,例如在业务项目中可以依据菜单或者功能模块划分,如果是组件库开发,则可以依据组件划分。
提示: scope
可以省略。
3、subject
3、subject
subject
是
commit
的简短描述。
Body
Body
commit
的详细描述,说明代码提交的详细说明。
Footer
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 信息并提交。