首页 > 解决方案 > 使用 git ls-remote 显示除候选版本之外的所有标签

问题描述

我目前有一个部署过程,其中生产版本标签在表单中v1.0.1,阶段/发布候选者遵循表单v1.0.1-rc.1。我看到我可以使用以下内容仅引入候选版本:

git ls-remote --tags --refs --sort tag origin "refs/tags/v*.*.*-rc.*"

ba2ed... refs/tags/v1.0.1-rc.1
f37ac... refs/tags/v1.0.1-rc.2

但是,如果我只看到 v1.0.1、v1.0.2 等标签,而我可能会排除包含该-rc.模式的标签,我该如何做相反的事情呢?

标签: git

解决方案


用于grep -v排除(过滤掉)输出行:

git ls-remote --tags --refs --sort tag origin "refs/tags/v*" | grep -v -e "-rc\.[0-9]\+$"

正则表达式的-rc\.[0-9]\+$意思是:

-rc — literally
\. — literal dot
[0-9]\+ — any number of digits
$ — end of the string to avoid matching "-rc.1" in the middle

推荐阅读