git describe 只显示最新的标签和额外的提交

git describe show only latest tag and additional commits

git describe 是否有任何语法只显示最新的标签和额外的提交?

让你得到

4.0.7 用于标记为 4.0.7
的提交 4.0.7-12 自标记 4.0.7

以来有 12 次提交

git describe --tags4.0.7-12-g09181 非常接近,但我还没有找到摆脱附加哈希的方法。

git describe --tags --abbrev=2

仍然显示4.0.7-12-g0918

git describe --tags --abbrev=0

仅显示 4.0.7

There is no option in the describe command to do what you want. You could pipe the output to a shell script that removes the hash.

git describe --tags | sed 's/\(.*\)-.*//'

谢谢!

我 运行 遇到了一个类似的问题,我想生成一个类似这样的字符串: "tag-commits" 但可以选择后跟 -dirty and/or -broken 后缀。

1.0-3    
1.0-3-dirty
1.0-3-dirty-broken

(脏只是表示您有未提交的更改)。

然而,接受的答案会在末尾删除 -dirty(或使用 -broken 时)标签,并在输出中保留哈希值。

为了解决这个问题,我编写了以下命令:

git describe --tags --dirty | sed 's/-g[a-z0-9]\{7\}//'

之所以有效,是因为散列总是以 "g" 开头,后跟 7 个字符。