如何在Git中檢索當前提交的哈希值?

我想保留(暫時)將Git變動集連接到存儲在TFS中的工做項的功能。 html

我已經編寫了一個工具(使用Git的鉤子),能夠在其中將workitemidentifiers插入到Git變動集的消息中。 git

可是,我也想將Git提交的標識符(哈希)存儲到自定義TFS工做項字段中。 這樣,我能夠檢查TFS中的工做項,並查看與該工做項相關聯的Git變動集。 github

如何輕鬆地從Git的當前提交中檢索哈希? ide


#1樓

若是須要在腳本執行期間將哈希存儲在變量中,則可使用 工具

last_commit=$(git rev-parse HEAD)

或者,若是您只想要前10個字符(就像github.com同樣) spa

last_commit=$(git rev-parse HEAD | cut -c1-10)

#2樓

爲了完整起見,由於沒有人建議過。 .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


#3樓

我知道的最簡潔的方法是:

git show --pretty=%h

若是您想要特定數量的哈希,能夠添加:

--abbrev=n

#4樓

git show-ref --head --hash head

可是,若是您要追求速度, Deestan提到的方法

cat .git/refs/heads/<branch-name>

到目前爲止比這裏列出的任何其餘方法都快得多。


#5樓

也許您想要一個別名,因此您沒必要記住全部漂亮的細節。 完成如下步驟之一以後,您將能夠輕鬆鍵入:

$ 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顯示最後一次提交的哈希值。

相關文章
相關標籤/搜索