我有一个 Github 存储库,我通过 Atom.io 与客户端一起使用它来帮助保持其网站的所有更改同步。GitHub 存储库包含一个 webhook,可自动将所有更改推送到实时网站,但我想使用 PHP 将直接在 Web 服务器上完成的更改推送回存储库。即:日志文件备份、图像上传和直接在服务器上进行的快速更改。
如果服务器上发生了这些变化之一,我的脚本会告诉我没有问题。
git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD ..." to unstage)
#
# new file: somefolder/somenewfile.whatever
#
如果我从命令行执行此操作,则一切都会完美地重新同步:
git add --all
git commit -m "from server"
git push -u origin master
但如果我尝试通过 PHP shell_exec() 反引号执行此操作,则` `
不会发生任何事情。我甚至尝试添加暂停。
$output = `git add --all`;
echo $output;
sleep(1);
$output = `git commit -m "from server"`;
echo $output;
sleep(3);
$output = `git push -u origin master`;
echo $output;
sleep(3);
有人知道我在这里做错了什么吗?我应该将这些调用放在 bash 脚本中,然后通过 PHP 模板调用它吗?