共计 字 • 阅读约
min
前言
一个项目中,可能有很多小伙伴一同参与开发,编写好代码后,经常基于在 Git 中提交我们的更改,因此我们在提交信息随便写点什么就提交上去了。例如:aaa,commit,日期时间等等。显然这不是一个好的做法,我们应该尽量编写能说明这次提交内容的提交信息,以便于他人 codereview 或者代码回滚时能理解这次修改
什么是 Commitlint ?
commitlint 负责用于对 commit message 进行格式校验,检查您的提交信息并确保它们遵循一组规则。
它是一个 husky 预提交钩子运行,在提交之前运行,如果没有通过校验的话就并阻止提交。
什么是 husky ?
简单来说,就是 Git 的钩子,能够在特定事件发生之前或之后执行特定脚本代码功能
如何使用
我们需要安装 commitlint CLI 和 commitlint 配置
本文使用的是: Conventional Commits Config
npm install --save-dev @commitlint/config-conventional @commitlint/cli
# OR
pnpm add -D @commitlint/config-conventional @commitlint/cli
接着再新建一个 commitlint.config.js
的配置文件
更多配置请参考 commitlint 文档
module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [
2,
'always',
[
'feat', // 新功能 feature
'fix', // 修复 bug
'docs', // 文档注释
'style', // 代码格式(不影响代码运行的变动)
'refactor', // 重构(既不增加新功能,也不是修复bug)
'perf', // 性能优化
'test', // 增加测试
'chore', // 构建过程或辅助工具的变动
'revert', // 回退
'build' // 打包
]
]
}
}
或者使用命令行生产配置文件
echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js
现在我们还需要安装 husky 来运行 commitlint
npm install husky --save-dev
# OR
pnpm add -D husky
添加 husky 预提交钩子
npx husky add .husky/commit-msg "npx --no -- commitlint --edit $1"
提交
现在,让我们编写一个不遵循规范的提交信息试试
git commit -m '123'
不出意外,你应该会看到这样的错误输出。如果提交成功了,说明您可能那个地方出错了,再次检查确认
最后,该试试正确的提交信息了!!
git commit -m 'feat: new feature'
至此,大功告成
文章更新于: 2022-3-26 23:44:17