获取简短的Git版本哈希

有没有一种更干净的方法来从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次提交)这样的字符串。

348968 次浏览

试试这个:

git rev-parse --short HEAD

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

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

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

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

< p > # EYZ0
缩写提交哈希

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

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

git branch -v


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

一个非常简单的方法是:

git describe --always
git log -1 --abbrev-commit

也会这样做。

git log --abbrev-commit

将列出具有缩写SHA-1校验和的日志项。

查看Git提交简短版本和Git提交消息的简单方法是:

git log --oneline

注意,这是对

git log --pretty=oneline --abbrev-commit

我有Git 2.7.4版本,设置如下:

git config --global log.abbrevcommit yes
git config --global core.abbrev 8

当我这样做的时候:

git log --pretty=oneline

我得到一个8位数字的简短提交id:

ed054a38 add project based .gitignore
30a3fa4c add ez version
0a6e9015 add logic for shifting days
af4ab954 add n days ago
...

那么这个呢:

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

它显示了如下内容:

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

参见漂亮的格式文档