git commit -m "调整修改"
当我开始变为资深码农,并且开始管理整个项目的代码质量以及规范时,看着年轻人提交的代码,你这都是个啥,啥叫调整修改。正如我们看着自己当年写的代码,充满怀疑,这竟然是我写的?
那么,快捷工具来了,commitizen/cz-cli。
<type>(<scope>): <subject> // ... <body> // ... <footer>其中,Header 是必需的,Body 和 Footer 非必须。
主要是对于issue的关联。
npm install commitizen -g2. 接下来,在项目中通过输入以下命令初始化以使用cz-conventional-changelog适配器:
# npm commitizen init cz-conventional-changelog --save-dev --save-exact # yarn commitizen init cz-conventional-changelog --yarn --dev --exact # pnpm commitizen init cz-conventional-changelog --pnpm --save-dev --save-exact注意: 如果要在已经配置过的项目里面覆盖安装,则可以应用强制参数--force。还要了解其它详细信息,只需运行 。commitizen help
"config": { "commitizen": { "path": "cz-conventional-changelog" } }
{ "path": "cz-conventional-changelog" }3. 使用
npm install --save-dev commitizen在 npm 5.2+ 上,可以使用 npx 初始化适配器:
npx commitizen init cz-conventional-changelog --save-dev --save-exact对于以前版本的 npm(< 5.2),使用项目内部命令即可:
./node_modules/.bin/commitizen init cz-conventional-changelog --save-dev --save-exact然后,您可以在package.json文件中添加命令:
"scripts": { "commit": "cz" }
这对所有项目使用人员比较统一化,如果他们想进行提交,他们需要做的就是运行npm run commit
#!/bin/bash exec < /dev/tty && node_modules/.bin/cz --hook || true注意: 如果prepare-commit-msg文件是新建的,需要执行权限chmod 777 .git/hooks/prepare-commit-msg,否则:
npm install husky -D2. 初始化husky配置
npm pkg set scripts.prepare="husky install" npm run prepare3. 添加脚本,我们这边针对提交触发
npx husky add .husky/prepare-commit-msg "exec < /dev/tty && node_modules/.bin/cz --hook || true"疑问: commitizen文档对于husky推荐利用package.json添加husky配置,但是我这边不起作用,后边研究一下原因。
注意: 一定慎重同时配置husky和本地git hooks,会重复执行。
npm install -g commitizen npm install -g cz-conventional-changelog用户目录下创建配置文件(Mac下,Linux下同理):
echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc项目和全局都配置了适配器,将先以本地为主。