内容很少的,只是我截图比较多而已,一步一步来的
1,在本地初始化一个仓库
随便创建个文件夹,进入文件夹,打开 git bash here
git init
vim webhook.php
<?php
// /www/wwwroot/site.com
$webPath = '您的网站根目录';
// WebHook签名密钥,是签名秘钥部署密码哟
$webHookSecret = 'zidongbushu';
/**
* 写日志函数
* @param $str '日志字符串'
*/
function writeLog($str) {
file_put_contents('webhook.log', $str, FILE_APPEND | LOCK_EX);
}
//以流的方式读取传输过来的json
$body = file_get_contents("php://input");
if (empty($body)) {
die('无输入');
}
//json转换为array
$body = json_decode($body, true);
//签名校验 (文档详见: https://gitee.com/help/articles/4290)
$secretJoin = $body['timestamp'] . "\n" . $webHookSecret;
$mySign = base64_encode(hash_hmac('sha256', $secretJoin, $webHookSecret, true));
if ($mySign !== $body['sign']) {
die('签名错误');
}
//获取推送分支
$branch = str_replace('refs/heads/', '', $body['ref']);
//执行更新
$output = shell_exec('cd ' . $webPath . '; git pull origin ' . $branch . ' 2<&1; chown -R www:www ' . $webPath . '*;');
//输出执行结果
die('执行结果:' . json_encode($output));
git add .
git commit -m '初始化&增加了webhook.php'
2, 在gitee新建一个空仓库
当你新建一个仓库就会出现如下界面,然后三步走
此时gitee已经有了webhook.php文件了
3, 配置远程仓库gitee webhook
4, 到配置服务器端咯哟
4.1
,
4.2
4.3
4.4,修改目录所属用户和组
4.5
4.6,修改一下,保存退出wq
5,试试行不行
显然还不行 百度一下,执行: git config pull.rebase false
完成
测试一下吧:
本地随便添加个文件
git add .
git commit -m '添加个aaa.txt文件'
git push
再去看看服务器那边,ok啦,本地每次push,自动同步过来啦