我有以下代码
<?php
$output = `git status`;
var_dump($output);
die;
这给了我正确的输出,那么为什么当我这样做时,我什么也得不到?
<?php
$output = `git pull origin master`;
var_dump($output);
die;
由于某些原因导致代码没有被执行,因为在我打电话后存储库没有更新..
发生了什么事?
答案 0 :(得分:3)
我遇到的问题是输出是针对stderr的,而不是stdout。这就是为什么我没有输出。我修好了这个:
<?php
$output = `git pull origin master 2>&1`;
var_dump($output);
die;
答案 1 :(得分:2)
我相信我遇到过这个问题。当您使用PHP执行Git命令时,值得重置您的工作目录:
$output = `cd /path/to/project && git pull origin master`;
另外,请记住PHP上可能不会使用控制台上的PATH
,因此使用其完全限定的路径调用git也是值得的。