玩转git之webhook应用初探
Github
93html
云车网,前端工程师
1人收藏 3117次学习

玩转git之webhook应用初探

原文转自:http://ued.ctrip.com/blog/?p=3646?tn=gongxinjun.com

最近碰到这样的一个需求,就是 本地提交代码 到 git仓库以后 需要 网站 远程自动同步代码 。

git 的 webhook  正好能 满足 这个需求。

具体步骤:

服务器端:

1. 服务器端 生成 apache 的 deploy key

sudo -u apache ssh-keygen -t rsa -C “jianl@example.com”

2.给apache 操作目录的权限

第一种方法 直接给 目录 777 权限 简单粗暴

第二种方法 建立用户组  把 ftp用户 和 apache 添加到该组别里面 , 给予该组权限

groupadd gitwriters
adduser [yourusername] gitwriters
adduser apache gitwriters
chgrp -R gitwriters /path/to/your/repo
chmod -R g+rw /path/to/your/repo

3.在需要自动同步的仓库打开hook

cd /项目/.git/
cp hooks/post-receive.sample hooks/post-receive
vim hooks/post-receive
#加入下面代码
GIT_WORK_TREE=/home/www git checkout -f

4.加入接收 webhook的 脚本, 在项目 创建 update.php

$www_folder = "/2T/ftp/utools/uilib" ;

//git仓库地址
$git_repo = "git@git.dev/.......abc.git" ;

//执行指令 
echo shell_exec(" cd $www_folder && git pull $git_repo 2>&1 ");

gitlab 端的设置:

找到项目的设置 , deploy key项 添加 直接 apache用户 生成的 ssh key webhook 项 添加 网站地址/update.php (正常能够访问的链接) , 勾选 Push events 保存

完全以上配置 。服务器端自动同步代码的功能就能够实现了。

加入1KE学习俱乐部

1KE学习俱乐部是只针对1KE学员开放的私人俱乐部
标签:
Git
课程交流
铁鹰
2016-01-15

老师,我按照您的补助操作,可是结果一直不成功:返回 Info:Host key verification failed. fatal: The remote end hung up unexpectedly 请问是什么原因呢?诚盼回复