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

9
有没有语法可以使git describe仅显示最新的标签和附加提交?
这样你就可以得到:
在标记为4.0.7的提交处,4.0.7
自标记4.0.7以来有12个提交,4.0.7-12

git describe --tags非常接近4.0.7-12-g09181,但我还没有找到一种方法来去掉附加的哈希。
git describe --tags --abbrev=2

仍然显示4.0.7-12-g0918
git describe --tags --abbrev=0

显示仅为4.0.7

在描述命令中没有选项可以做你想要的事情。你可以将输出导入到一个 shell 脚本中,以删除哈希符号。 - 1615903
2个回答

7
没有在describe命令中执行你想要的操作的选项。你可以将输出导入到一个删除哈希的shell脚本中。
git describe --tags | sed 's/\(.*\)-.*/\1/'

请查看https://dev59.com/ZFwY5IYBdhLWcg3w5bTt#32084572。谢谢!

请注意,如果标签中有破折号(例如1.0.0-rc1),则此操作将失败。 - cowlinator

5

我遇到了一个类似的问题,我想生成一个字符串:"tag-commits",但是可以选择添加-dirty和/或-broken后缀。

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

“Dirty”仅表示您有未提交的更改。

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

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

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

这是因为哈希总是以一个“g”开头,后面跟着7个字符。

a-f instead of a-z and sometimes hashes are 9 characters long. So: git describe --tags --dirty | sed 's/-g[0-9a-f]\{7,9\}//' - Itay Grudev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接