想要了解详细的请移步:git钩子
我们日常主要使用的有两个:
git hook | 调用时机 | 说明 |
pre-commit | gitcommit执行前 它不接受任何参数,并且在获取提交日志消息并进行提交之前被调用 脚本git commit以非零状态退出会导致命令在创建提交之前中止 | 可以用git commit --no-verify绕过 |
commit-msg | git commit执行前 可用于将消息规范化为某种项目标准格式 还可用于检查消息文件后拒绝提交 | 可以用git commit --no-verify绕过 |
简单介绍下这两个钩子:
git commit:会在提交前被调用,并且可以按需指定是否要拒绝本次提交
commit-msg:可以用来规范化标准格式,并且可以按需指定是否要拒绝本次提交
步骤:安装两个工具(需要npm 7.X以上)
commitlint:检查提交信息
husky:git hooks 工具
commitlint:
1.安装依赖:
npm install --save-dev @commitlint/config-conventional@12.1.4 @commitlint/cli@12.1.4
2.创建commitlint.config.js文件
echo "module.exports = {extends:['@commitlint/config-coventional']}">
commitlint.config.js
3.打开commitlint.config.js,增加配置项(config-conventional)
module.exports = {
// 继承规则
extends: ["@commitlint/config-conventional"],
// 定义规则类型
rules: {
// type 类型定义.标识git提交的type必须在以下类型范围内
"type-enum": [
2,
"always",
[
"feat", //新功能feature
"fix", //修复bug
"docs", //文档注释
"style", //代码格式
"refactor", //重构
"perf", //性能优化
"test", //增加测试
"chore", //构建过程或辅助工具的变动
"revert", //回退
"build", //打包
],
],
// subject 大小写不做校验
"subject-case": [0],
},
};
注:保存格式必须为utf-8
hushy:
1.安装依赖:
npm install husky@7.0.1 --save-dev
2.启动hooks,生成 .husky文件夹
npx husky install
3.
(1):方法1 在package.json中生成prepare指令(npm > 7)
(2):方法2 也可以终端输入
npm set-script prepare "husky install"
4.执行 preparse指令
npm run prepare
5.等待执行成功
6.添加commitlint的 hook 到 husky中,并指令在commit-msg 的hooks 下执行 npx --no-install commitlint --edit "$1" 指令