我想保留(暂时)将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
显示最后一次提交的哈希值。