git commit的时候不知道写什么?没关系,这里有一款工具解决你的烦恼。commitizen是一个自动生成commit messsage的工具,只需要运行git cz就能够自动根据你的选择帮你生成整洁美观的commit messsage。通常都是配合conventional-changelog使用angular的commit格式
这个技巧想必已经烂大街了。所以这里介绍一个更酷的方式:配合上一些第三方的配置文件,使用emoji来作为commit messsage

STEP 1 安装

这里安装所需的工具:commitizen conventional-changelog conventional-changelog-cli cz-customizable,然后使用nielsgl/conventional-changelog-emoji这个项目里面的配置文件自定义commit messsage格式。

其实用cz-emoji可以直接生成emoji格式的commit message的,但是这玩意生成的commit message用emoji取代了<type>,没法用conventional-changelog-cli生成changelog,所以我们要用cz-customizable进行自定义。

1
2
3
npm install -g commitizen conventional-changelog conventional-changelog-cli cz-customizable
echo '{ "path": "cz-customizable" }' > ~/.czrc
wget https://raw.githubusercontent.com/nielsgl/conventional-changelog-emoji/master/.cz-config.js -O ~/.cz-config.js

STEP 2 使用

使用git cz就能按照选项填写 commit message。要生成changelog的话,参照如下方法:

1
2
3
4
5
# 不会覆盖以前的 Change log,只会在 CHANGELOG.md 的头部加上自从上次发布以来的变动
$ conventional-changelog -i CHANGELOG.md -s -p

# 生成所有发布的 Change log
$ conventional-changelog -i CHANGELOG.md -w -r 0

生成changelog后,要发布release什么的只要复制CHANGELOG.md的内容填进去就行了。

参考资料

规范你的 commit message 并且根据 commit 自动生成 CHANGELOG.md
commitizen/cz-cli
nielsgl/conventional-changelog-emoji