如何使用php在标头上显示git分支名称
我需要在导航栏顶部显示分支名称。 有人知道怎么展示吗? 我用的是Laravel,所以试过这个如何使用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环境配置直接访问。其次,我发现一些程序
@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'));