首页 > 解决方案 > 在分支上获取倒数第二个 git 标签,匹配给定的 glob

问题描述

我有一个 git repo,在 master 分支上提交,每个都可能有多个标签:

HASH: TAGS
hash7: [v6.0.0, foo1, foo2, foo3]
hash6: []
hash5: []
hash4: [v5.0.0, bar1, bar2, bar3]
hash3: [v4.0.0, baz1, baz2, baz3]
hash2: []
hash1: [v3.0.0, foobar1, foobar2, foobar3]

我有一个 github 操作,由创建版本标签 ( v.*.*.*) 触发。这个动作需要能够找出之前的版本标签。因此,例如,如果操作在hash7( v6.0.0) 上运行,它应该返回v5.0.0。如果它在hash4( v5.0.0) 上运行,它应该返回v4.0.0等。

有许多与此相关的 stackoverflow 问题。我尝试了以下各种组合:

后者,例如,当 run on在没有跳过选项的情况下运行时v6.0.0给出最新的标记 ( v6.0.0),但v4.0.0在跳过选项设置为 1 时给出。

我已经做了很多谷歌搜索,但我找不到任何可靠的东西。

总而言之,我追求的是:此分支上最近的版本标签(不包括附加到当前位于 HEAD 的提交的版本标签)

标签: git

解决方案


跳过HEAD

git describe --abbrev=0 --match="v*" --tags HEAD~

推荐阅读