使用commitizen规范git的提交


起因

我们看一些正规项目的git提交记录,比如vue3的:

每条git log都是一个单词+冒号+描述的方式,并且生成的CHANGELOG.md也很正规化的样子:

怎么实现的呢?
看一下package.json中关于changelog的操作:

所以是通过conventional-changelog实现的,猜测就是根据之前git log中的单词生成漂亮的changelog。
那么之前的有格式的git log是如何写出来呢,虽然可以每次都手动写,但总有点麻烦。
果然,搜索一下就有结果,使用工具commitizen

比如阮一峰的这篇Commit message 和 Change log 编写指南,说得就比较清楚。

但是,看起来需要在每个git项目下面都运行一下:

commitizen init cz-conventional-changelog --save --save-exact

不仅比较麻烦,还会修改每个项目的packages.json文件,并且非nodejs项目也不支持这样用啊。

肯定是有全局解决方案的。

解决方案

全局安装

npm i -g commitizen cz-conventional-changelog

编辑commitizen的配置文件~/.czrc

{
  "path": "cz-conventional-changelog"
}

这样每次git commit操作都用git cz替代,向导模式提交,相当方便。