使用git钩子实现自动部署

发布于 2022-11-29 12:24 阅读 679

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

参考

https://www.jianshu.com/p/e4db2050305f

广而告之,我的新作品《语音助手》上架Google Play了,欢迎下载体验