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



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

有一行我这样做:

exec("git push {$remote} {$branch}:{$branch}", $shell_output, $status);

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

我尝试使用此处描述的输出缓冲区无济于事。我确信SO上有一些东西可以回答这个问题,但经过大量挖掘后仍然无法找到它。

因此,任何帮助将不胜感激:)

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

git push REPO --progress 2>&1

或文件:

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

相关内容

  • 没有找到相关文章

最新更新