昨晚看了一篇关于编写规范化的git commit message的文章,觉得对于多人团队编写项目来说确实很有用,周围同事和自己提交的内容都很随意,没什么太多信息量可言。然后自己也有这方面的困扰,每次提交commit的时候总在想要写点什么东西。所以今天尝试了一把,顺便记录一下。
首先关于有哪些规范,以及规范格式参见下面的两篇文章,这里记录一下如何实现。补充一下node和npm的安装方法:直接官网下载安装包即可
-
全局安装commitizen & cz-conventional-changelog
如果规范单纯全靠自觉是不可能维持的,我们需要工具帮助和限制,那就是按照规范形式一步一步提醒我们需要输入的内容,这个就是靠commitizen和cz-conventional-changelog帮助我们实现。
使用npm安装全局插件:
$ npm install -g commitizen cz-conventional-changelog $ echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc
有了这个插件,后续原先git commit命令用git cz命令替换即可
-
项目内部依靠插件commitlint和husky进行检查
如果我们一直使用git cz提交代码,那么基本上就已经足够了,但是为了避免我们忘记使用git cz按照规范提交,我们可以使用插件来对commit内容进行检查,这时就需要commitlint和husky两个插件了。
一开始对npm不太熟悉,上来就安装了这两个插件,结果没有成功。原来需要在项目根目录下创建一个package.json文件或者使用
npm init
初始化一下项目。接下来看看安装的步骤:-
项目根目录下创建package.json文件
-
npm install --save-dev @commitlint/cli @commitlint/config-conventional
接着创建 commitlint.config.js 文件,并写入以下内容:
module.exports = { extends: ['@commitlint/config-conventional'], };
-
安装husky
npm install --save-dev husky
配置package.json文件,使用husky在commit的时候进行校验。 这里有个小插曲,就是按照参考文章里面的配置script的方式来进行会报错,后来去github项目看了文档才配置成功的,所以很多东西不能只参考别人写的文章,时过境迁,很多项目的变动会很大,还是需要以项目主页参考文档为准。
{ "husky": { "hooks": { "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" } } }
-
参考文章: