远程仓库发现有用户执行push操作,就会执行一个脚本post-receive
优采云 发布时间: 2021-05-26 20:38远程仓库发现有用户执行push操作,就会执行一个脚本post-receive
原理与过程
1、 git用户执行git push操作
2、如果远程仓库发现用户已执行了推送操作,它将在接收后执行一个脚本(挂接)
3、在接收后脚本中,将git存储库的代码复制到网站目录中
1、输入服务器以安装git并建立仓库
sudo yum install git
cd ~
git init
git init --bare www.xx.com
两者之间的区别:
1、普通git存储库的目录结构与您的代码目录结构相同,仅添加.git目录,并且.git目录收录git的一些配置数据
2、裸仓库仅保存一些配置信息等,并且肉眼找不到我们上传的代码(推荐)
2、输入网站根目录
git clone ~/www.xx.com
网站目录中有仓库的完整代码的副本。
接下来写钩子文件
cd ~/www.xx.com/hooks
vim post-receive
在接收后挂钩文件中写入以下内容
#!/bin/sh
unset GIT_DIR
cd /var/www/html/website
git pull
保存并在编辑后退出。上面的命令意味着将cd转到网站目录,并使用git pull进行更新。稍后,必须将后接收更改为可执行文件:
chmod 775 post-receive
3、本地环境将代码提交到服务器
git clone ssh://git@127.0.0.1:22/~/www.xx.com
git add .
git commit -m=''
git push