git自动拉取
本文你会学到:本地git push 服务器自动拉取。主要用到的是php exec函数
gitPull.php
<?php
//强制拉取
$pass = $_GET['pass'] ?? '';
$action = $_GET['action'] ?? ''; // 站点文件夹名称
if( $pass != 'secretKey' || empty($action) ){
exit("ERROR");
}
doAction($action);
function doAction($action)
{
$path = "你的站点目录" . $action;
if (!is_dir($path)) {
exit($path . "不存在");
}
exec("cd {$path} && git fetch --all && git reset --hard origin/master && git pull",$out,$res);
printOut( $out );
}
function printOut( $out ){
$logFile = "./log/".date('Y-m-d').".txt";
echo "<pre>\n";
foreach( $out as $o ){
file_put_contents($logFile,"{$o}\n",FILE_APPEND);
echo $o;
echo "\n";
}
echo "时间:".date('Y-m-d H:i:s');
echo "\n";
echo "------------------------------------------------------------------------------------\n";
echo "</pre>";
}
- 在服务器上搭建一个站点,比如:git.abcde.cn。里面的内容是gitPull.php
php 要开启 exec函数 - 在git远程仓库上设置Webhooks
git.abcde.cn/gitPull.php?pass=secretKey&action=项目文件夹名称 - 在服务器上要配置好你的git账号密码还可以正常操作,注意权限问题。