如何获取Git中当前提交的哈希?


当前回答

echo“正在打印当前分支的上次提交id#:”;

 git reflog

其他回答

提交哈希

git show -s --format=%H

缩写的提交哈希

git show -s --format=%h

-s标志与--no补丁相同,代表“抑制差异输出”。

单击此处查看更多git显示示例。

使用git rev list--max count=1 HEAD

要获取完整的SHA:

$ git rev-parse HEAD
cbf1b9a1be984a9f61b79a05f23b19f66d533537

要获取缩短版本:

$ git rev-parse --short HEAD
cbf1b9a

echo“正在打印当前分支的上次提交id#:”;

 git reflog

如果你想要超级黑客的方式:

cat .git/`cat .git/HEAD | cut -d \  -f 2`

基本上,git将HEAD的位置存储在.git/HEAD中,格式为ref:{path from.git}。此命令将读取该位置,将“ref:”切片,并读取它指向的任何文件。

当然,这在分离头模式下会失败,因为head不会是“ref:…”,而是哈希本身-但你知道,我认为你不会期望在bash一行中有那么多聪明。如果你不认为分号是作弊的话。。。

HASH="ref: HEAD"; while [[ $HASH == ref\:* ]]; do HASH="$(cat ".git/$(echo $HASH | cut -d \  -f 2)")"; done; echo $HASH