2011-02-03 49 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