git hook https://git-scm.com/docs/githooks
- 什么是git hook
git hook官网的介绍,git hook 其实就是钩子
钩子可以放在钩子目录中,在git的执行过程中触发某些操作。没有可执行位集的钩子被忽略。大家去看一下jQuery和一些开源框架的源码,会发现很多项目在提交commit的时候都会触发一些脚本来检查代码和做一些test动作
- 有啥用
用处大得很,简单来说,规避风险和偷懒,我们不想把时间花在找一个语法错误的bug上面,也不想做一些重复性的操作,比如持续集成
现在大部分的持续集成的构建环境,比如travis和jekkins基本上和git hook的原理有关系
- 举例,iview的源码
- pre-commit
https://github.com/observing/pre-commit
pre-commit 配置是一个数组,可以添加多个命令,会依次执行。
同理,pre-push 的安装和配置为:
安装:
npm install --save-dev pre-push
- 配置,在 package.json 中配置 pre-push,例如在 push 前运行测试:
{
……
"scripts": {
" test": "……",
},
"pre-push": ["test"]
}