运行“git pull”;在 PHP 中使用 shell_exec 不显示错误

发布于 2024-11-16 21:06:50 字数 437 浏览 0 评论 0原文

我正在为 github 创建一个用 PHP 编写的部署脚本。我正在使用 shell_exec 命令运行 git pull ,效果很好。

当拉取错误时,就会出现我的问题。如果我在终端中执行此操作,则会收到完整错误。例如:

git pull origin master
Updating f706749..8468d24
test.txt: needs update
error: Entry 'test.txt' not uptodate. Cannot merge.

但是当我在 shell_exec 中运行相同的命令时,输出被截断为

Updating f706749..8468d24
test.txt: needs update

错误消息被截断,可能是因为它是前一个响应的响应。有没有办法返回完整的输出?

I'm creating a deployment script for github, written in PHP. I'm using the shell_execcommand to run git pull which works fine.

My issue occurs when there is an error with the pull. If I do it in Terminal, I get the full error. For example:

git pull origin master
Updating f706749..8468d24
test.txt: needs update
error: Entry 'test.txt' not uptodate. Cannot merge.

But when I run the same command in shell_exec the output is truncated to just

Updating f706749..8468d24
test.txt: needs update

The error message is getting cut off, possibly because it's a response from the previous response. Is there a way to return the full output?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

情绪操控生活 2024-11-23 21:06:50

10-1 丢失的行不会写入stdout,而是写入stderr

在这种情况下,您可以将 stderr 重定向到 stdout

"command    2>&1"

2>&1 将错误消息重定向到正常的输出文件。

10-1 the missing lines are not written to stdout but to stderr.

In that case you can redirect the stderr to stdout with

"command    2>&1"

The 2>&1 redirects the error messages to the normal output file.

柒夜笙歌凉 2024-11-23 21:06:50

通过搜索一下,我可能发现 回答您的问题。

尝试捕获 stderr。

希望这有帮助,祝你好运!

By searching a bit, I might have found the answer to your problem.

Try capturing stderr.

Hope this helps and good luck!

梦在夏天 2024-11-23 21:06:50

将错误通过管道传输到您的输出。在 exec 命令中使用 2>这是“标准错误”流。

Pipe the error to your output. In the exec command use 2> which is the "standard error" stream.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文