如何使用 php 在 Header 上显示 git 分支名称
How to show git branch name on Header using php
我需要在导航栏的顶部显示分支名称。
任何人都可以知道如何显示它吗?
我正在使用 Laravel 所以尝试了这个。
@php
$rev = exec('git rev-parse --short HEAD');
echo $rev;
@endphp
请提供合适的选项。
exec 函数可能有点棘手,如果您不确定从哪里开始,会遇到许多无法预料的问题。首先,执行该功能的进程通常在 _www 用户下,而不是您计算机上的用户帐户。这意味着并非所有程序都可以通过 PATH 环境配置直接访问。其次,我发现某些程序的输出无缘无故地通过标准错误发送。
情况 2 的一个例子是
$output = `nc -z 127.0.0.1 {$port}`;
Backtick Operator 将在使用 shell_exec() 函数之间执行 bash 脚本,并打印完整输出,这与 exec 对应部分不同.展望未来,我建议您在脚本末尾附加 2>&1 命令。这将打印错误输出以及执行数据。
$rev = `git rev-parse --short HEAD 2>&1`;
添加此内容后,您可能会收到另一个更接近理论错误的错误:
sh: git: command not found
此时您需要为所需程序添加准确的执行路径。您可以通过使用终端(不在 php CGI/GUI 执行中)和 which 命令
来做到这一点
>> which git
/usr/bin/git
...
$rev = `/usr/bin/git rev-parse --short HEAD 2>&1`;
以下命令显示PHP
中的当前分支名称
exec('git symbolic-ref HEAD', $output);
$branches = explode('/', $output[0]);
$branch = end($branches);
第二种解法是
$branch = trim(shell_exec('git rev-parse --abbrev-ref HEAD'));
我需要在导航栏的顶部显示分支名称。 任何人都可以知道如何显示它吗? 我正在使用 Laravel 所以尝试了这个。
@php
$rev = exec('git rev-parse --short HEAD');
echo $rev;
@endphp
请提供合适的选项。
exec 函数可能有点棘手,如果您不确定从哪里开始,会遇到许多无法预料的问题。首先,执行该功能的进程通常在 _www 用户下,而不是您计算机上的用户帐户。这意味着并非所有程序都可以通过 PATH 环境配置直接访问。其次,我发现某些程序的输出无缘无故地通过标准错误发送。
情况 2 的一个例子是
$output = `nc -z 127.0.0.1 {$port}`;
Backtick Operator 将在使用 shell_exec() 函数之间执行 bash 脚本,并打印完整输出,这与 exec 对应部分不同.展望未来,我建议您在脚本末尾附加 2>&1 命令。这将打印错误输出以及执行数据。
$rev = `git rev-parse --short HEAD 2>&1`;
添加此内容后,您可能会收到另一个更接近理论错误的错误:
sh: git: command not found
此时您需要为所需程序添加准确的执行路径。您可以通过使用终端(不在 php CGI/GUI 执行中)和 which 命令
来做到这一点>> which git
/usr/bin/git
...
$rev = `/usr/bin/git rev-parse --short HEAD 2>&1`;
以下命令显示PHP
中的当前分支名称exec('git symbolic-ref HEAD', $output);
$branches = explode('/', $output[0]);
$branch = end($branches);
第二种解法是
$branch = trim(shell_exec('git rev-parse --abbrev-ref HEAD'));