Git Hooks 就是那些在Git执行特定事件(如commit、push、receive等)后触发运行的脚本
Git Hooks功能作用
- 多人开发代码语法、规范强制统一
- commit message 格式化、是否符合某种规范
- 如果有需要,测试用例的检测
- 服务器代码有新的更新的时候通知所有开发成员
- 代码提交后的项目自动打包
travis ci
(git receive之后) 等等
husky介绍
Git hooks made easy 让githooks使用起来简单的工具
实例:现在使用husky实现以下功能
-
代码规范校验
-
commit message规范
-
第一步:初始化项目并初始化git
-
第二步:安装相关依赖
husky
lint-staged
只校验有更改的提交prettier
格式化@commitlint/cli
@commitlint/config-angular(@commitlint/config-conventional)
conventional-changelog-cli
生成change log
npm i -D husky lint-staged prettier @commitlint/{config-conventional,cli,config-angular} conventional-changelog-cli
- 第三步:配置
package.json
"lint-staged": {
"*.js": [
"eslint --fix",
"git add"
],
"*.json": [
"prettier --write",
"git add"
]
},
"husky": {
"hooks": {
"pre-commit": "lint-staged", // 校验代码规范
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS" // 校验commit message规范
}
},
- 第四步:根目录新增commitlint配置文件
commitlint.config.js
这里直接使用了angular的规范
module.exports = { extends: ["@commitlint/config-angular"] };
接下来,按正常操作代码提交即可,会进行相关校验,不成功则无法提交