使用git钩子实现自动部署

2022-12-05 15:47:50 浏览数 (2)

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控制之外的文件/目录可以是其他权限

代码语言:javascript复制
chmod -R git:git /data/www/blog

参考

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

git

0 人点赞