2011-02-03 46 views
4

我需要为特定的git分支提取缩写的提交名称。这些通常是7位数字的十六进制数字,它们被某些系统(包括Heroku的COMMIT_HASH环境变量)用来标识特定的提交。干净地获取git分支的缩略语提交

有一些丑陋的方式来获得一个缩写提交的名称,其中包括:

$ git log -1 --oneline | awk '{ print $1 }' 
d4377e3 
$ git describe --always --match '' 
d4377e3 

有一个更清洁的方式来获得这个价值?

回答

8

大问题。我相信正在寻找git-rev-parse,这是低级git命令之一。

[[email protected] Data]$ git-rev-parse --short github/master 
8b81a38 

另外,如果你想要最新提交的当前分支,只是通过HEAD作为参数。

[[email protected] Data]$ git-rev-parse --short HEAD 
8b81a38 
+4

*烦人*迂腐,`git-rev-parse`是一个瓷器命令。为了编写脚本,应该使用管道命令`git rev-list -n1 --abbrev-commit HEAD`来代替。但没关系;) – 2011-02-03 03:30:50

2

git log--pretty-format选项可用于:

git log -1 --pretty=format:%h 
+0

给了我无法识别的论据 – JasonPlutext 2012-05-21 08:31:58