来自php的git commit将无法正常工作

I have a simple php script that execute a git commit action on a local git repo. It used to work great but since i moved to new server it stopped working. The exec response code is 128 and the output is blank.

My first thought was directory permissions or ownership, but I've tried everything and it doesn't help. Anyone have any idea what could be the problem or a way to identify the error better ?

This is a test code that reproduce the problem:

$repoName = 'test';

$dirpath = __DIR__;

if (! file_exists($dirpath . DIRECTORY_SEPARATOR . $repoName)) {
    mkdir($dirpath . DIRECTORY_SEPARATOR . $repoName, 0777, true);
}

exec('git init ' . $repoName);

$dirpath .= DIRECTORY_SEPARATOR . $repoName;
chdir($dirpath);

file_put_contents($dirpath. DIRECTORY_SEPARATOR . '.gitkeep', '');
file_put_contents($dirpath. DIRECTORY_SEPARATOR . 'realFile.txt', 'this is a test');

exec('git add -A');

exec('git commit -a --author="user <user>" -m "test message"', $output, $returnCode);
echo "return code $returnCode<br/>";
echo "output:<br/>";
var_dump($output);
duancan5327
duancan5327 这非常有帮助,谢谢!
接近 6 年之前 回复
dp815292
dp815292 var_dump($output)是什么;返回?如果没有,请在shell命令的末尾添加2>&1Ë™,然后重试。
接近 6 年之前 回复

1个回答

Use 2>&1 at the end of the shell command, to redirect stderr to stdout.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐