繁体   English   中英

如何使用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}`;

反引号运算符将在使用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'));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM