Fork me on GitHub

如何优雅地处理我们的Commit信息

 之前做过一篇关于如何处理commit信息的博客,但是还缺少一种规范和自动化处理的东西在里面,这篇将会引入commitizen和husky,旨在提升commit信息的可阅读性以及工程化处理的便利性。

Commitizen

安装配置

  npm install -D commitizen cz-conventional-changelog开发环境安装依赖,安装后在package.json中写入npm scriptcz-conventional-changelog配置。

1
2
3
4
5
6
7
8
9
"scripts": {
...,
"commit": "git-cz",
},
"config": {
"commitizen": {
"path": "node_modules/cz-conventional-changelog"
}
}

使用

  配置完毕后,我们键入npm run commit应当有下面这个交互界面:

  其实这里的交互有点像git rebase,不过实际上只是遵照参考规范用于格式化我们的commit信息罢了。那这个参考规范指的是什么呢?前文中我们安装的是Angular团队进行commit提交的参考规范,具体内容可以看传送门

  现在我们提交当前这篇博文的第一部分:

  推到远程仓库后:

  更新部分内容再推送:

自定义规范

  前文使用的是Angular的提交规范,那假如我们想自己整个怎么办呢?

  我们可以安装cz自定义配置的依赖npm i -D cz-customizable,然后修改package.json内的config项。把前文指向cz-conventional-changelogpath替换为cz-customizable

1
2
3
4
5
"config": {
"commitizen": {
"path": "node_modules/cz-customizable"
}
}

  最后在项目根目录创建.cz-config.js,内容就是我们自定义的东西。官方提供了一个模板,对着改就完事了~