配置项目提交到git的时候自动同步服务器代码
一、在服务器项目跟目录新建文件hook.php 代码如下:
<?php $json = file_get_contents("php://input"); $data = json_decode($json,true); if (isset($data['ref']) && $data['total_commits_count']>0) { $res = PHP_EOL."pull start ——————————————————————".PHP_EOL; $res .= shell_exec("cd /home/www/leokim && git pull https://xxxxxx.com:passwod@gitee.com/xxxx/xxxx.git 2<&1 "); $res_log = '——————————————————————————————'.PHP_EOL; $res_log .= $data['user_name'] . ' 在' . date('Y-m-d H:i:s') . '向' . $data['repository']['name'] . '项目的' . $data['ref'] . '分支push了' . $data['total_commits_count'] . '个commit:'.$data['commits']['message']; $res_log .= $res.PHP_EOL; $res_log .= "pull end ——————————————————————————".PHP_EOL; file_put_contents("/home/wwwlogs/webhook/".date('Y-m-d',time()).".txt", $res_log, FILE_APPEND);//写入日志到log文件中 } ?>
二、配置码云webhook:
三、确认服务器安装了git,在web目录下clone 项目:git clone https://gitee.com/xxxx/xxxx.git;
四、把git的目录权限改为web用户权限: chown -r www:www
五、手动更新代码:cd /home/www/leokim && git pull;
六、git pull 冲突或错误时,用命令git stash && git pull解决冲突或错误