我有一个 GIT 存储库,我正在使用 PHP 脚本从主分支中提取并更新服务器上的文件。这是一个非常简单的解决方案,只是为了测试它。我想在 github 上添加一个 webhook 以在成功推送后发送回调,以便我可以从这个 repo 中提取。
脚本双向运行
- 从命令行
- 来自 HTTP 请求
不同之处在于,当我从 HTTP 运行它时,它不会拉取新的更改,只是显示它是最新的并且即使我 100% 确定 repo 中有新的更改也不做任何事情。输出来自 GIT 命令,所以我确信它可以工作,并且 apache 具有运行该脚本文件和其中使用的命令的适当权限。
当我通过命令行(通过相同的脚本或只是清理 git 命令)运行它时,一切都很好,脚本会提取新的更改并显示标准的 GIT 输出。
PHP代码:
echo "Pulling changes from master branch...\n";
$result = shell_exec('cd /var/git-test && git reset --hard HEAD && git pull');
if($result !== null){
echo $result;
}else{
echo $result;
echo "Error in Git pull comand";
}
我该如何解决?