【问题标题】:How to show git branch name on Header using php如何使用 php 在 Header 上显示 git 分支名称
【发布时间】:2017-12-11 07:24:33
【问题描述】:

我需要在导航栏的顶部显示分支名称。 有人可以知道如何显示吗? 我正在使用 Laravel,所以尝试了这个。

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

请提供适当的选项。

【问题讨论】:

  • git branch 获取当前分支名称
  • 试试函数__git_ps1。如果可行,您可能需要删除括号。

标签: php git git-branch


【解决方案1】:

如果您不确定从哪里开始,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`;

【讨论】:

    【解决方案2】:

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

    exec('git symbolic-ref HEAD', $output);
    $branches = explode('/', $output[0]);
    $branch = end($branches);
    

    第二个解决方案是

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

    【讨论】:

      猜你喜欢
      • 2012-12-06
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      • 2010-12-22
      • 1970-01-01
      • 1970-01-01
      • 2012-05-22
      • 2021-08-23
      相关资源
      最近更新 更多