我需要爲特定的git分支提取縮寫的提交名稱。這些通常是7位數字的十六進制數字,它們被某些系統(包括Heroku的COMMIT_HASH環境變量)用來標識特定的提交。乾淨地獲取git分支的縮略語提交
有一些醜陋的方式來獲得一個縮寫提交的名稱,其中包括:
$ git log -1 --oneline | awk '{ print $1 }'
d4377e3
$ git describe --always --match ''
d4377e3
有一個更清潔的方式來獲得這個價值?
我需要爲特定的git分支提取縮寫的提交名稱。這些通常是7位數字的十六進制數字,它們被某些系統(包括Heroku的COMMIT_HASH環境變量)用來標識特定的提交。乾淨地獲取git分支的縮略語提交
有一些醜陋的方式來獲得一個縮寫提交的名稱,其中包括:
$ git log -1 --oneline | awk '{ print $1 }'
d4377e3
$ git describe --always --match ''
d4377e3
有一個更清潔的方式來獲得這個價值?
大問題。我相信正在尋找git-rev-parse
,這是低級git命令之一。
[[email protected] Data]$ git-rev-parse --short github/master
8b81a38
另外,如果你想要最新提交的當前分支,只是通過HEAD
作爲參數。
[[email protected] Data]$ git-rev-parse --short HEAD
8b81a38
git log
的--pretty-format
選項可用於:
git log -1 --pretty=format:%h
給了我無法識別的論據 – JasonPlutext 2012-05-21 08:31:58
我發現pimping-out-git-log有用。
*煩人*迂腐,`git-rev-parse`是一個瓷器命令。爲了編寫腳本,應該使用管道命令`git rev-list -n1 --abbrev-commit HEAD`來代替。但沒關係;) – 2011-02-03 03:30:50