Git命令显示HEAD提交ID?


250

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

这是我手工做的:

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

但是我需要一个脚本,该脚本可以可靠地将某些命令的输出传递到文本文件,以便该文本文件完全包含HEAD的提交ID(不多或少,而不仅仅是引用)。有人可以帮忙吗?


我之前也有类似的问题。在这里得到了很好的回答:stackoverflow.com/questions/44994626/…–
smwikipedia

Answers:




15

旧线程,仍供以后参考... :)即使后续工作

git show-ref --head

默认情况下,HEAD被过滤掉。但是要注意跟随; 复数“头”,末尾带有“ s”。以下命令显示“ refs / heads”下的分支

 git show-ref --heads

4
在(大型)git repo中使用这些命令,我​​从中获得了两行,从获得了git show-ref --heads6290行git show-ref --head。因此,如果您只需要单个哈希,则可能无法获得预期的结果。
Remigius Stalder

7

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

git log -1 --format=%H

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

git log -1 --format=%h



1

根据 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


0

您可以使用此命令

$ git rev-list HEAD

您还可以使用headUnix命令显示最新的n HEAD提交,例如

$ git rev-list HEAD | head - 2


0

您可以使用

git log -g branchname

查看git reflog格式类似于git log输出的信息

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.