【问题标题】:Git command to display HEAD commit id?Git命令显示HEAD提交ID?
【发布时间】:2010-12-30 09:24:00
【问题描述】:

我可以使用什么命令打印出 HEAD 的提交 ID?

这是我正在做的手工:

$ cat .git/HEAD
ref: refs/heads/v3.3
$ cat .git/refs/heads/v3.3
6050732e725c68b83c35c873ff8808dff1c406e1

但我需要一个脚本,该脚本可以可靠地将某些命令的输出通过管道传输到文本文件,以便该文本文件准确包含 HEAD 的提交 id(不多也不少,而不仅仅是一个 ref)。有人可以帮忙吗?

【问题讨论】:

标签: git version-control


【解决方案1】:

使用命令:

git rev-parse HEAD

短版:

git rev-parse --short HEAD

【讨论】:

  • 对于寻找短版哈希的任何人,git rev-parse --short HEAD 都可以。
【解决方案2】:
git log -1

仅用于提交 ID

git log | head -n 1 

【讨论】:

  • 谢谢,这很容易
  • 仅供参考:git log | head -1git log | head -n 1 相同。
  • 虽然 OP 只询问了 HEAD 的提交 ID,但 git log -1 非常有用。因为它还显示提交消息和其他详细信息,这使得进一步的分析/比较变得容易。谢谢!
【解决方案3】:

旧线程,仍以供将来参考...:) 甚至以下作品

git show-ref --head

默认情况下 HEAD 被过滤掉。 不过要小心跟随;复数“头”,结尾有一个“s”。以下命令显示“refs/heads”下的分支

 git show-ref --heads

【讨论】:

  • 在(大)git repo 中使用这些命令,我​​从git show-ref --heads 得到两行,从git show-ref --head 得到6290 行。所以如果你只想要一个哈希,这可能不是预期的结果。
【解决方案4】:

您可以指定 git log 选项以仅显示最后一次提交 -1 以及仅包含提交 ID 的格式,如下所示:

git log -1 --format=%H

如果您更喜欢缩短的提交 ID:

git log -1 --format=%h

【讨论】:

    【解决方案5】:

    玩 Bash:

    git show HEAD | sed -n 1p | cut -d " " -f 2
    

    【讨论】:

      【解决方案6】:

      根据https://git-scm.com/docs/git-log, 要在控制台中获得更漂亮的输出,您可以使用 git-log 命令的 --decorate 参数:

      git log --pretty=oneline --decorate
      

      将打印:

      2a5ccd714972552064746e0fb9a7aed747e483c7 (HEAD -> master) New commit
      fe00287269b07e2e44f25095748b86c5fc50a3ef (tag: v1.1-01) Commit 3
      08ed8cceb27f4f5e5a168831d20a9d2fa5c91d8b (tag: v1.1, tag: v1.0-0.1) commit 1
      116340f24354497af488fd63f4f5ad6286e176fc (tag: v1.0) second
      52c1cdcb1988d638ec9e05a291e137912b56b3af test
      

      【讨论】:

        【解决方案7】:

        git rev-parse --abbrev-ref HEAD

        【讨论】:

        • 这不显示提交 ID,而是显示与提交相关的任何名称(如分支或标签)。这不是原始用户想要的。
        • @AsfandQazi 但这正是我想知道的,我的谷歌搜索在顶部给了我这篇文章。
        【解决方案8】:

        你可以使用

        git log -g branchname
        

        查看git reflog 格式的信息,如git log 输出

        【讨论】:

          【解决方案9】:

          你可以使用这个命令

          $ git rev-list HEAD

          您还可以使用head Unix 命令显示最新的n HEAD 提交喜欢

          $ git rev-list HEAD | head - 2

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-12-12
            • 2021-10-26
            • 2015-10-05
            • 2018-11-02
            • 2013-12-14
            • 1970-01-01
            • 2020-12-05
            • 1970-01-01
            相关资源
            最近更新 更多