..
git hooks
今天在看jaeger的前端代码的时候,发现本地git commit之后会自动执行前端的测试用例。然后知道git本地有hooks这个文件夹,里面可以添加好几种hook,只要按照制定的文件写,并且加上可以执行文件,加上对于的SheBang,就能执行hook。在本地git仓库的.git/hooks/文件中,我编写了一个hook文件,pre-push,这个是在push代码之前触发的。
#!/bin/sh
echo "我要push代码了"
编写了这个文件以后,记得chmod u+x pre-push,让当前用户具有执行这个脚本的权限,注意:这里写的是bash脚本,但是它并没有约束只能使用bash,你也可以使用Python或者perl,awk,node…等等语言来编写,只要加上对于的SheBang就可以。
hellojukay@deepin:~/Data/Code/Linux$ git push origin master
我要push代码了
对象计数中: 3, 完成.
Delta compression using up to 8 threads.
压缩对象中: 100% (2/2), 完成.
写入对象中: 100% (3/3), 258 bytes | 0 bytes/s, 完成.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:hellojukay/linux-c.git
7be5e01..d0a1a40 master -> master
push 一下代码,我的hook触发了。其他类型的hook也是同意的道理,这里也就不在赘述了。
2020年10月27日补充
git 还有 2 种配置全局 hook
目录的方式:
# git 2.9+
git config --global core.hooksPath /path/to/my/centralized/hooks
$GIT_DIR/hooks
参考链接: