У меня есть репозиторий Github, который я использую через Atom.io вместе с клиентом, чтобы обеспечить синхронизацию всех изменений для их веб-сайта. Репозиторий GitHub содержит веб-крючок, который автоматически передает все наши изменения на действующий веб-сайт, но я хочу использовать PHP, чтобы перенести изменения, сделанные непосредственно на веб-сервере, обратно в репо. То есть: резервное копирование файлов журнала, загрузка изображений и быстрые изменения, которые были сделаны непосредственно на сервере.
Если произойдет одно из этих изменений на сервере, мои сценарии сообщат мне об этом без проблем.
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?