原理和流程
1、git用户执行 git push
操作
2、远程仓库发现有用户执行了push操作,就会执行一个脚本 post-receive
(钩子)
3、在 post-receive
脚本中,将git仓库的代码拷贝到web站点目录下
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
这样网站目录就有一份仓库的完整代码
接下来写hook文件
cd ~/www.xx.com/hooks
vim post-receive
在post-receive钩子文件里写以下内容
#!/bin/sh
unset GIT_DIR
cd /var/www/html/website
git pull
编辑后保存退出。以上命令表示cd到网站目录,并git pull更新。随后还要把post-receive改成可执行:
chmod 775 post-receive
3、本地环境提交代码至服务器
git clone ssh://git@127.0.0.1:22/~/www.xx.com
git add .
git commit -m=''
git push