У меня есть следующий код
<?php
$output = `git status`;
var_dump($output);
die;
что дает мне правильный вывод, так почему же, когда я делаю это, я ничего не получаю?
<?php
$output = `git pull origin master`;
var_dump($output);
die;
По какой-то причине этот код не выполняется, так как хранилище не обновляется после выполнения вызова.
Что здесь происходит?
Проблема у меня была в том, что вывод был направлен на stderr, а не на stdout. Вот почему я не получил выходной. Я исправил это так:
<?php
$output = `git pull origin master 2>&1`;
var_dump($output);
die;
Я считаю, что я сталкивался с этой проблемой. Когда вы выполняете команду Git с PHP, стоит сбросить ваш рабочий каталог следующим образом:
$output = `cd /path/to/project && git pull origin master`;
Кроме того, имейте в виду, что PATH
у вас на консоли может не использоваться PHP, поэтому может также стоить вызывать git, используя его полный путь.