有没有一种更干净的方法来从Git中获得HEAD的短版本哈希?

我想看到相同的输出,我从:

 git log -n 1 | head -n 1 | sed -e 's/^commit //' | head -c 8

我最初使用上面的命令来生成一个版本字符串,但这个更好:

git describe --tags

它将输出诸如0.1.12(标记提交)或0.1.11-5-g0c85fbc(标记后5次提交)之类的字符串。


当前回答

带有短散列和最后注释的分支:

git branch -v

  develop      717c2f9 [ahead 42] blabla
* master       2722bbe [ahead 1] bla

其他回答

那么这个呢:

git log --pretty="%h %cD %cn %s"  

它显示了如下内容:

674cd0d Wed, 20 Nov 2019 12:15:38 +0000 Bob提交消息

请参阅漂亮的格式文档

带有短散列和最后注释的分支:

git branch -v

  develop      717c2f9 [ahead 42] blabla
* master       2722bbe [ahead 1] bla

试试这个:

git rev-parse --short HEAD

git rev-parse命令可以做很多不同的事情,所以您需要非常仔细地浏览文档才能发现这一点。

你可以用——pretty=format做任何你想要的格式:

git log -1 --pretty=format:%h 

来自man git log的%h的含义是:

% h 简化提交哈希

要查看其他格式选项,请参阅man git log并搜索以短语“扩展到从提交中提取的信息的占位符:”开头的部分。

一个非常简单的方法是:

git describe --always