【问题标题】:What does "HEAD -> branch, origin/branch" mean in a git commit log?“HEAD -> 分支,起源/分支”在 git 提交日志中是什么意思?
【发布时间】:2019-05-12 02:56:40
【问题描述】:

我正在尝试了解 git log 命令的输出。通常我看到 HEAD 指向一个特定的分支,但我对 HEAD 似乎指向本地分支和远程分支(HEAD -> 分支,原点/分支)的含义感到困惑。

我尝试在网络上搜索答案,但我什至不知道如何编写问题,并且显示的结果不相关。

git log
commit 3b64cc50d6fe262d007853774689e8ad58e0f2ae (HEAD -> internal-env-board-david-fix, origin/internal-env-board-david-fix)
Author: user <user_email>
Date:   Some_Date

    Added build flag to platform.ini file: -D UAVCAN_CPP_VERSION=UAVCAN_CPP11

当我如上所示运行git log 时,我不知道(HEAD -&gt; internal-env-board-david-fix, origin/internal-env-board-david-fix) 是什么意思。通常 head 只指向一个分支,而这里它似乎由于某种原因指向本地分支和远程分支。知道为什么吗?

【问题讨论】:

    标签: git command-line


    【解决方案1】:

    Pro Git book 说:

    Git 如何知道您当前所在的分支?它有一个特殊的指针,叫做 HEAD.... 在 Git 中,这是一个指向你当前所在的本地分支的指针。在这种情况下,你仍然在 master 上。

    HEAD 指向一个特定的分支,但git log 命令也显示了远程分支相对于本地分支的位置。在这种情况下,两个分支在同一个提交处排列。情况并非总是如此。 chapter 3 中的图表很好地描述了所有这些。

    【讨论】:

      【解决方案2】:

      (HEAD -&gt; internal-env-board-david-fix, origin/internal-env-board-david-fix)是主要由--decorate[=short|full|auto|no]控制的输出。输出的意思是“显示的任何提交的引用名称”。如果没有给出,默认使用--decorate=short。要隐藏输出,请使用--no-decorate。要过滤输出,请使用--decorate-refs=&lt;pattern&gt;--decorate-refs-exclude=&lt;pattern&gt;。要找出所有这些参考,我们可以使用git for-each-ref --points-at=&lt;commit&gt;

      在您的情况下,origin/internal-env-board-david-fixHEAD 没有直接关系。 internal-env-board-david-fixorigin/internal-env-board-david-fix 都直接指向3b64cc50d6fe262d007853774689e8ad58e0f2ae,而HEAD 仅指向internal-env-board-david-fix。换句话说,HEAD 间接指向3b64cc50d6fe262d007853774689e8ad58e0f2ae。符号-&gt; 表示间接。使用cat .git/HEAD,它会打印ref: refs/heads/internal-env-board-david-fix

      HEAD--->internal-env-board-david-fix--->3b64cc50d6fe262d007853774689e8ad58e0f2ae
      origin/internal-env-board-david-fix------^
      

      如果我们运行git checkout 3b64cc50d6fe262d007853774689e8ad58e0f2ae 以进入分离的HEAD 状态,则装饰将是(HEAD, internal-env-board-david-fix, origin/internal-env-board-david-fix),而-&gt; 的符号消失了。 .git/HEAD 的内容将变为 3b64cc50d6fe262d007853774689e8ad58e0f2ae。现在HEAD和其他两个分支都直接指向3b64cc50d6fe262d007853774689e8ad58e0f2ae

                              HEAD--->3b64cc50d6fe262d007853774689e8ad58e0f2ae
      internal-env-board-david-fix-----^    ^
      origin/internal-env-board-david-fix---|
      

      【讨论】:

        猜你喜欢
        • 2017-01-31
        • 2010-10-25
        • 2019-09-09
        • 1970-01-01
        • 1970-01-01
        • 2019-10-18
        • 2021-12-26
        • 1970-01-01
        相关资源
        最近更新 更多