我想保留(暫時)將Git變動集連接到存儲在TFS中的工做項的功能。 html
我已經編寫了一個工具(使用Git的鉤子),能夠在其中將workitemidentifiers插入到Git變動集的消息中。 git
可是,我也想將Git提交的標識符(哈希)存儲到自定義TFS工做項字段中。 這樣,我能夠檢查TFS中的工做項,並查看與該工做項相關聯的Git變動集。 github
如何輕鬆地從Git的當前提交中檢索哈希? ide
若是須要在腳本執行期間將哈希存儲在變量中,則可使用 工具
last_commit=$(git rev-parse HEAD)
或者,若是您只想要前10個字符(就像github.com同樣) spa
last_commit=$(git rev-parse HEAD | cut -c1-10)
爲了完整起見,由於沒有人建議過。 .git/refs/heads/master
是僅包含一行的文件: master
上最新提交的哈希。 所以,您能夠從那裏閱讀它。 code
或者,做爲命令: htm
cat .git/refs/heads/master
更新: get
請注意,git如今支持將一些head refs存儲在pack-ref文件中,而不是做爲/ refs / heads /文件夾中的文件存儲。 https://www.kernel.org/pub/software/scm/git/docs/git-pack-refs.html hash
我知道的最簡潔的方法是:
git show --pretty=%h
若是您想要特定數量的哈希,能夠添加:
--abbrev=n
git show-ref --head --hash head
可是,若是您要追求速度, Deestan提到的方法
cat .git/refs/heads/<branch-name>
到目前爲止比這裏列出的任何其餘方法都快得多。
也許您想要一個別名,因此您沒必要記住全部漂亮的細節。 完成如下步驟之一以後,您將能夠輕鬆鍵入:
$ git lastcommit 49c03fc679ab11534e1b4b35687b1225c365c630
跟蹤已接受的答案 ,如下是兩種設置方法:
1)經過編輯全局配置(個人原始答案)以顯式方式教git:
# open the git config editor $ git config --global --edit # in the alias section, add ... [alias] lastcommit = rev-parse HEAD ...
2)或者,若是您喜歡捷徑教git捷徑,正如Adrien最近評論的那樣:
$ git config --global alias.lastcommit "rev-parse HEAD"
從這裏開始,使用git lastcommit
顯示最後一次提交的哈希值。