首页 > 解决方案 > 基于模式的 Git 标签

问题描述

我们的存储库中有不同版本的标签。仅假设该类型仅出现一次,才需要获取特定的图案化标签。例如

v1.1.0
1.0
v1.0
v0.1.0-0.20201201002611-5424ca76ab3e
v1.2.0-alpha 

如何获得仅遵循 v0.1.0-0.20201201002611-5424ca76ab3e 的特定内容

我有正则表达式 v[0-9]*.[0-9]*.[0-9]-0.\d{14}-\b[0-9a-f]{12}\b

我尝试使用它,git describe --match "v[0-9]*.[0-9]*.[0-9]-0.\d{14}-\b[0-9a-f]{12}\b" --abbrev=0 --tags $(git rev-list --tags)但似乎不起作用。还有其他方法可以获取具有特定格式的标签吗?

标签: regexgitshelltags

解决方案


您可以使用以下 POSIX BRE 模式:

'v[0-9]*\(\.[0-9]*\)\{2\}-0\.[0-9]\{14\}-[0-9a-f]\{12\}'

在哪里

  • v- 火柴v
  • [0-9]*- 零个或多个数字
  • \(\.[0-9]*\)\{2\}- 两次重复.和零个或多个数字
  • -0\.- 一个0.字符串
  • [0-9]\{14\} - 十四位数
  • -- 一个连字符
  • [0-9a-f]\{12\}- 十二位数字或小写字母。

推荐阅读