git有很多钩子,分为客户端钩子和服务端钩子
下面主要使用了服务端钩子:post-receive
当 push 动作已经完成的时候会被触发,可以用此 hook 来 push notification 等,比如发邮件,通知持续构建服务器等。
先创建一个仓库
#先切到git用户
su git
mkdir -p ~/blog.git
cd ~/blog.git
git --bare init
#进到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