使用Commitizen 规范 Git Commit Message
1. 安装 NPM (待完善)
2. Commitizen 配置及使用
Commitizen是一个格式化commit message的工具
1 | npm install -g commitizen |
使用 Angular 的 commit message,那么就在我们项目的目录下输入以下命令:
1 | commitizen init cz-conventional-changelog --save --save-exact |
但是注意,因为commitizen工具是基于Node.js的,而Android项目工程目录下是没有package.json文件,所以会报错:
1 | Error: ENOENT: no such file or directory, open '/Users/***/package.json |
参考commitizen的issue:Usage in non-node projects?,对于非Node的项目,我们可先在我们项目中添加一个空的package.json文件,然后再输入命令:
1 | npm init --yes |
先初始化配置package.json文件,然后再输入命令:
1 | commitizen init cz-conventional-changelog --save --save-exact |
当我们提交的时候,就用git cz替换git commit命令,会出现提交类型的选择,然后根据提示选择、输入就可以
如果是第二次配置,需要用–force:
1 | commitizen init cz-conventional-changelog --save --force |
必要时(如出现找不到命令时)可以重启命令行工具 or Android Studio
3. 生成CHANGELOG
conventional-changelog 是生成 Change log 的工具。
Commitizen 依据 conventional message,创建起一个生态:
- conventional-changelog-cli:通过提交记录生成 CHANGELOG.md
- conventional-github-releaser:通过提交记录生成 github release 中的变更描述
- conventional-recommended-bump:根据提交记录判断需要升级 Semantic Versioning 哪一位版本号
- validate-commit-msg:检查提交记录是否符合约定
1 | $ npm install -g conventional-changelog-clibash |
你会发现在项目中多了CHANGELOG.md文件,表示生成 Change log成功。
>
1 | # 增量生成changelog 不会覆盖以前的changelog |
1 | # 全部重新生成 Change log |
本文参考 Commit Message & Change Log
Peace