在git仓库中hook目录下配置post-receive
vi post-receive
配置内容如下
#!/bin/sh
git --work-tree=/www/wwwroot/www.test.com/videoPro --git-dir=/home/git/video/videopro.git checkout -f
sudo chmod -R 777 /www/wwwroot/www.test.com
sudo chown -R www:www /www/wwwroot/www.test.com
–work-tree为需要同步的目录
–git-dir为git仓库目录
另一种配置方式
#!/bin/sh
# 打印输出
echo '=====上传代码到服务器====='
# 打开线上项目文件夹
cd /www/wwwroot/pro
echo '=====打开线上项目文件夹====='
#
unset GIT_DIR
sudo chmod -R 777 /www/wwwroot/pro
# 拉取代码
git pull origin master
echo '=====代码更新完成====='
sudo chown -R www:www /www/wwwroot/pro
sudo chmod -R 755 /www/wwwroot/pro
sudo chown -R git:git /www/wwwroot/pro/.git
echo '=====更新权限完成====='
设置钩子文件的执行权限
chmod +x post-receive
将git用户放入www用户组
usermod -a -G www git
让git无密码sudo
vi /etc/sudoers
#追加写入
git ALL=(ALL) NOPASSWD: ALL