Git pull не работает с Shell_exec (‘git pull’);

Я пытаюсь использовать php для запуска команд git, и он работает очень хорошо, но у меня странная проблема мерзавец.

$auth       = 'https://' . $txtusername . ':' . $txtpassword . '@' . $gitrepo;
$txtbranch = 'master';

shell_exec ("2>&1 git pull $auth $txtbranch");

From https://gitlab.companyname.com/testperson/git-bootcamp
* branch            HEAD       -> FETCH_HEAD
Already up-to-date.

Я получаю вывод, что все обновлено, но на самом деле есть файлы, которые еще не были извлечены. Удивительно, что работает следующее, но не описанное выше (напрямую добавлена ​​статическая строка в код)

shell_exec ("2>&1 git pull http://testperson:tes%40t123@gitlab.companyname.com master");

From https://gitlab.companyname.com/testperson/git-bootcamp
* branch            HEAD       -> FETCH_HEAD
Updating ee30924..c92f020
Fast-forward
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Что-то я делаю не так? пожалуйста, вы можете помочь мне в этом.
Сервер: линукс
, PHP: 7.0
, Gitlab (частное)

заранее спасибо.

0

Решение

$ auth становится URL без некоторого экранирования (не вижу его), но в работающем примере используется экранированный URL.

0

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

Других решений пока нет …