从PHP exec()函数读取git push的输出

Nat*_*Kot 4 php git bash operating-system

我正在为我的框架的命令行工具编写一个部署命令.它使用git进行部署.

我有一条线,我这样做:

exec("git push {$remote} {$branch}:{$branch}", $shell_output, $status);
Run Code Online (Sandbox Code Playgroud)

我想在内部输出$shell_output,但它没有发生(输出只显示在终端上).我认为因为git是一个外部程序,因此创建了一个新的输出流?

我试过使用这里描述的输出缓冲区无济于事.我确信有些东西可以解决这个问题,但是经过多次挖掘后却无法找到它.

所以任何帮助将不胜感激:)

Mic*_*ael 9

git将其输出发送到STDERR而不是STDOUT,因此您需要使用以下内容重定向:

git push REPO --progress 2>&1

或文件:

git push REPO --progress > /path/to/file 2>&1