February 02, 2021
haiqing
584
非生产环境中,Git代码提交后通过 post-receive 文件自动把代码部署到 Web 目录下,并能够清除缓存等文件内容,提高效率。
sudo apt-get install git
添加git用户
sudo adduser git
创建仓库
sudo git init --bare /home/git/demo.git
详细安装过程参考 Ubuntu Git 安装、配置及常用命令
检查用户及用户组
groups git
# git : git
Ubuntu 中 默认的 Web 用户是www-data,接下来把git用户添加到 www-data 用户组中
usermod -a -G www-data git
groups git
# git : git www-data
多了一个www-data,表示git用户被添加到了www-data用户组中。
修改web目录的权限,增加www-data组用户对目录的写权限
chmod -R g+w /var/www/html
ls -al
# -rw-rw-r-- 1 www-data www-data 11510 Jan 18 2016 index.html
# -rw-rw-r-- 1 www-data www-data 612 Jul 7 2019 index.nginx-debian.html
创建钩子文件
vi /home/git/demo.git/hooks/post-receive
自动部署仓库代码到Web环境目录,并清除缓存文件
#!/bin/bash
GIT_WORK_TREE = /var/www/html git checkout -f master
rm -rf /var/www/html/cache
执行钩子文件
cd /home/git/demo.git/hooks
cd /home/git/demo.git/hooks
#修改权限,保证在不登录服务器的情况下Git可用
chmod +x post-receive
sh post-receive
# Already on 'master'