服务器钩子,绝对是服务器的,update钩子和pre-receive钩子

一、在哪里写钩子?

最近在写脚本实现注释信息规则话,所以在网上各种百度,最后你会发现那些说的服务器钩子其实还是客户端钩子,因为他们都说的是把工程检出,然后进入.git/hook目录下发去写钩子,这样全部是自己客户端的自定义规则,无法实现共享和分发,你不可能让所有人把你的钩子安装在本地吧,所以我发现被坑好惨。后面我就闹洞一开,去试试找一下安装git的服务器上面有没有钩子目录呗,果然搜到了这个目录:

所以大家可以去搭建gitlab的服务器上面去搜索以下关键字:gitlab-shell,看一下我搜到的:

对了,就在这里:


下面有三个文件update、pre-receive、post-receive三个脚本,说一下分别是:pre-receive在push前检查你写的规则,如果脚本非0退出,那么就不允许push;post-receive是在push之后你有一些额外的操作,比如发邮件通知发布结果等等;最后的update和pre-receive类似,但是它会给所有的分支都推送你的规则。


大家直接看我的代码吧,具体的自己去看一些资料吧:就是他们的参数传递不太一样,还有就是推送的分支不同!

update的



pre-receive





你可能感兴趣的:(shell)