git有很多钩子,分为客户端钩子和服务端钩子
下面主要使用了服务端钩子:post-receive
当 push 动作已经完成的时候会被触发,可以用此 hook 来 push notification 等,比如发邮件,通知持续构建服务器等。
准备
先创建一个仓库
代码语言:javascript复制#先切到git用户
su git
mkdir -p ~/blog.git
cd ~/blog.git
git --bare init配置钩子
代码语言:javascript复制#进到git仓库目录
cd ~/blog.git/hooks
#配置test分支自动部署,其中-f参数:强制移动指针,忽略本地变化,使用git log是看不到提交记录的
vi post-receive
#!/bin/sh
git --work-tree=/data/www/blog checkout test -f
#给可执行权限
chmod x post-receive注意: 项目目录得有git:git权限,git控制之外的文件/目录可以是其他权限
chmod -R git:git /data/www/blog参考
https://www.jianshu.com/p/e4db2050305f


