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

阿米达

我有一个简单的PHP脚本,可以对本地git存储库执行git commit操作。它曾经工作得很好,但是自从我移到新服务器后,它就停止了工作。exec响应代码为128,输出为空白。

我的第一个想法是目录权限或所有权,但是我已经尝试了所有方法,但无济于事。任何人都知道可能是什么问题,或者是更好地识别错误的方法?

这是一个重现该问题的测试代码:

$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);
龟头

2>&1在shell命令末尾使用,将stderr重定向到stdout。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章