如何在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显示最后一次提交的哈希值。

相关文章
相关标签/搜索