git - 在分支上获取倒数第二个 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 问题。我尝试了以下各种组合:
git describe --match 'v*' --tags
git rev-list --tags='v*' --max-count=1 --skip=1
git describe --tags --match "v*" --abbrev=0 git rev-list --tags="v*" --max-count=1 --skip=1
后者,例如,当 run on在没有跳过选项的情况下运行时v6.0.0
给出最新的标记 ( v6.0.0
),但v4.0.0
在跳过选项设置为 1 时给出。
我已经做了很多谷歌搜索,但我找不到任何可靠的东西。
总而言之,我追求的是:此分支上最近的版本标签(不包括附加到当前位于 HEAD 的提交的版本标签)
解决方案
跳过HEAD
:
git describe --abbrev=0 --match="v*" --tags HEAD~
推荐阅读
- bazel - 有没有办法直接访问 Bazel 中内置的 starlark 语言类型?
- python - 无法访问日志文件
- angular - Angular 9中复选框的反应表单数组
- python - 递归到迭代 DFS python
- flutter - dart/flutter 使用 sudo 运行进程
- vuetify.js - 更改 vue 的扩展面板扩展文本
- html - 构建一个 html 表并在其他文件中渲染它
- c++ - C ++继承:无法从父类访问子类的成员变量
- excel - 图表不清楚,如何在 Excel 中显示大小不同的列?
- wpf - 如果在工具栏弹出窗口中,ToggleButton 的 DataTemplate 中的 WPF 文本框不显示文本