原理和流程

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

灰太狼
34 声望0 粉丝