功能簡介
本地往服務器推送代碼之后,觸發web鈎子,服務器拉取剛剛推送的代碼
步驟
1.在gitlab后台配置鈎子
項目-》編輯項目-》Web鈎子-》新增鈎子
2.在服務器端為www用戶生成公鑰
生成公鑰
ssh-keygen -t rsa -C "登錄gitlab的郵箱"
查看公鑰
cat ~/.ssh/id_rsa.pub
復制公鑰,前往gitlab的項目設置,將公鑰添加進去
3.在服務器端首先使用git pull將項目拉取一遍
使用git pull
先將代碼拉取下來
4.更改項目的git配置文件
在項目的根目錄vim ./.git/config
,將里面的配置項url的值改為項目倉庫的ssh鏈接(不要使用http鏈接)
5.在項目根目錄寫hooks.php文件
hooks.php參考:
<?php
$fs = fopen('./git_hook.log', 'a');
fwrite($fs, 'Request on ['.date("Y-m-d H:i:s").']'.PHP_EOL);
$json = file_get_contents('php://input');
$data = json_decode($json, true);
fwrite($fs, 'Data: '.print_r($data, true).PHP_EOL);
fwrite($fs, '======================================================================='.PHP_EOL);
$res = exec("cd 項目根目錄 && git pull origin master 2<&1",$output);
fwrite($fs,$res);
exit;
?>