我如何在PHP中获取GIT信息

时间:2018-05-04 00:30:33

标签: php git

我正在使用:

<?php
ob_start();
$vtag = shell_exec('git describe --tags');
if( is_null($vtag) ) { $vtag =""; }
ob_end_clean();
?>

要获取我的GIT控制项目的版本,我正在使用未注释的标签,当我从Windows 8.1中的GIT CMD运行它时,我可以获得显示正确信息的命令。

PHP手册(user contributed section)建议使用Ob_start / end_clean()来确保从std控制台获取输出。但它不产生任何输出(或错误输出)。知道问题在这里吗?

2 个答案:

答案 0 :(得分:0)

我建议使用一些现有的库来执行此任务 - 没有必要再次重新发明轮子。例如cpliakas/git-wrapper

$gitWrapper = new GitWrapper();
echo $gitWrapper->git('describe --tags', '/path/to/repository');

$repository = $gitWrapper->workingCopy('/path/to/repository'); 
echo $repository->tag();

答案 1 :(得分:-1)

找到this article帮助我解决问题:

只是为了帮助其他人解决同样的问题;这是我用过的:

$vtag = (string) shell_exec('C:\\PROGRA~1\\Git\\bin\\git describe --tags');

问题是exec()需要bin目录中可执行文件的路径,更重要的是因为WAMP环境中的用户是Apache(www)目录,其路径中没有GIT。还记得(我最初忘了)在Windows上逃避反斜杠。

希望这有助于其他所有人。 干杯!