代码上传至Gitee后同步到服务器

公司业务需要,现需要在Gitee上管理公司业务源码,员工连接Gitee并push本地源码至Gitee,服务器上可以实时更新程序。

(只限于服务器端)操作步骤:

1、服务器安装git,centOS命令:

yum install git

2、配置Gitee账户信息

cd ~
vi .git-credentials

3、写入如下数据

https://用户名:密码@gitee.com

4、配置全局Git参数

git config --global user.name "用户名"
git config --global user.email 邮箱
git config --global credential.helper store

5、查看~/.gitconfig,会发现多了一项

6、我们现在是为当前用户配置了Git,我们使用码云webhook是提醒本地的脚本实现拉取相对应仓库的代码,所以要设置服务器脚本的运行用户的git配置,比如我的脚本是PHP,php-fpm的用户即"www",那我就需要配置www的git配置。

cd /home/www
cp ~/.gitconfig /home/www/
cp ~/.git-credentials /home/www/

7、现在我们假定码云仓库为"https://gitee.com/yourname/test.git",服务器的路径为/www/wwwroot/test/,我们先克隆仓库代码至服务器

cd /www/wwwroot/ git clone https://gitee.com/yourname/test.git 8、需要将www用户的权限给到/www/wwwroot/test/目录,

chown -R nginx:nginx /data/www/test
chmod -R g+w /data/www/test

9、接下来就是用来接收gitee webhook,并拉取gitee更新的PHP脚本啦。

//本地路径
$local = '/www/wwwroot/test';
//仓库地址
$remote = 'https://gitee.com/yourname/test.git';
//密码
$password = '123456';
//获取请求参数
$request = file_get_contents('php://input');
if (empty($request)) {
    die('request is empty');
}
//验证密码是否正确
$data = json_decode($request, true);
if ($data['password'] != $password) {
    die('password is error');
}
echo shell_exec("cd {$local} && git pull {$remote} 2>&1");
die('done ' . date('Y-m-d H:i:s', time()));

10、将9的代码上传至可以外网访问到的目录,并将URL链接设置到相对应仓库的webhookurl上,并对应设置gitee的webhook密钥。

11、搞定收工,以后git push代码,gitee就会触发webhooks设置的脚本,并实现服务器端的git pull。

评论

wangqiang
wangqiang 2年前 #1

henbucuoa

赞(0)
回复

回复

您还未登录,请先登录或者注册