Git命令显示头提交ID?

问题描述:

我可以用什么命令打印HEAD的提交ID?Git命令显示头提交ID?

这是我的手在做什么:

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

但我需要一个能够可靠地管一些命令到一个文本文件的输出,使得文本文件实际上包含了提交的ID的脚本HEAD(没有什么或多或少的,而不仅仅是一个裁判)。谁能帮忙?

+0

我之前也有类似的问题。这是很好的回答在这里:https://*.com/questions/44994626/why-git-use-2-different-commands-to-show-head – smwikipedia 2017-07-09 09:20:39

使用命令:

git rev-parse HEAD 

对于短版:

git rev-parse --short HEAD 
+26

对于任何寻找散列的短版本,'git rev-parse --short HEAD'将起作用。 – mgarciaisaia 2015-04-13 18:21:59

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

git show-ref --head 

通过默认HEAD被过滤掉。 虽然以下要小心;复数“头”结尾处带有“s”。下面的命令显示在 “裁判/头”

git show-ref --heads 
+0

谢谢。有用。 – 2015-03-30 18:14:47

+1

在(大型)git仓库中使用这些命令,我​​从'git show-ref - heads'得到两行,从'git show-ref - head'得到6290行。所以如果你只想要一个散列,这可能不是预期的结果。 – 2017-06-15 08:47:53

播放与巴什分支:

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

避免使用'git show --pretty =%H' – bufh 2016-03-20 10:52:27

git log -1 

只提交ID

git log | head -n 1 

https://git-scm.com/docs/git-log, 更多漂亮的控制台输出你可以使用--decorate参数git的日志命令:

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