Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php在标头上显示git分支名称_Php_Git_Git Branch - Fatal编程技术网

如何使用php在标头上显示git分支名称

如何使用php在标头上显示git分支名称,php,git,git-branch,Php,Git,Git Branch,我需要在导航栏顶部显示分支名称。 有人知道怎么展示吗? 我用的是Laravel,所以试过这个 @php $rev = exec('git rev-parse --short HEAD'); echo $rev; @endphp 请为我提供适当的选项。如果您不确定从何处开始,exec函数可能会有点棘手,并存在许多无法预见的问题。首先,执行该函数的进程通常位于您计算机上的_wwwuser而不是您的users帐户下。这意味着并非所有程序都可以通过PATH环境配置直接访问。其次,我发现一些程序

我需要在导航栏顶部显示分支名称。 有人知道怎么展示吗? 我用的是Laravel,所以试过这个

@php
  $rev = exec('git rev-parse --short HEAD');
  echo $rev;
@endphp

请为我提供适当的选项。

如果您不确定从何处开始,exec函数可能会有点棘手,并存在许多无法预见的问题。首先,执行该函数的进程通常位于您计算机上的_wwwuser而不是您的users帐户下。这意味着并非所有程序都可以通过PATH环境配置直接访问。其次,我发现一些程序的输出是通过标准错误发送的,没有明显的原因

案例2的一个例子是

$output = `nc -z 127.0.0.1 {$port}`;
将在使用shell_exec()函数之间执行bash脚本,并打印与exec对应的完整输出。接下来,我建议您在脚本末尾附加2>&1命令。这将打印错误输出以及执行数据

$rev = `git rev-parse --short HEAD 2>&1`;
添加此项后,您可能会收到另一个更接近理论错误的错误:

sh: git: command not found
此时您需要向所需程序添加精确的执行路径。您可以通过使用终端(不是在PHPCGI/GUI执行中)和which命令来实现这一点

>> which git
/usr/bin/git


以下命令显示PHP中的当前分支名称

exec('git symbolic-ref HEAD', $output);
$branches = explode('/', $output[0]);
$branch = end($branches);
第二种解决方案是

$branch = trim(shell_exec('git rev-parse --abbrev-ref HEAD'));

git branch
要获取当前分支名称,请尝试函数
\uuuu git\u ps1
。如果有效,您可能需要删除括号。
$branch = trim(shell_exec('git rev-parse --abbrev-ref HEAD'));