公司业务需要,现需要在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。
评论