«git pull» не дает вывода на backtick

У меня есть следующий код

<?php

$output = `git status`;
var_dump($output);
die;

что дает мне правильный вывод, так почему же, когда я делаю это, я ничего не получаю?

<?php

$output = `git pull origin master`;
var_dump($output);
die;

По какой-то причине этот код не выполняется, так как хранилище не обновляется после выполнения вызова.

Что здесь происходит?

1

Решение

Проблема у меня была в том, что вывод был направлен на stderr, а не на stdout. Вот почему я не получил выходной. Я исправил это так:

<?php

$output = `git pull origin master 2>&1`;
var_dump($output);
die;
3

Другие решения

Я считаю, что я сталкивался с этой проблемой. Когда вы выполняете команду Git с PHP, стоит сбросить ваш рабочий каталог следующим образом:

$output = `cd /path/to/project && git pull origin master`;

Кроме того, имейте в виду, что PATH у вас на консоли может не использоваться PHP, поэтому может также стоить вызывать git, используя его полный путь.

2