git - 使用 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.
模式的标签,我该如何做相反的事情呢?
解决方案
用于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
推荐阅读
- c++ - 尝试使用 Windows 注册表中的路径和 DeleteFile() 方法删除 .exe 文件
- apache-kafka - Kafka 流与删除和/或关键更改聚合
- angular - Angular Material Typography 设置不正确
- android - 是否可以在 Android 或 iOS 设备上跟踪访问过的 URL?
- c# - C# 通用列表比较并获取不匹配的行
- swift - 我试图理解 Swift 中的 Optionals。代码有效,但我不明白为什么
- ios - Swift 中的网络请求不规则超时(使用 Alamofire)
- r - 在新数据框中使用因子变量时如何保持水平
- r - 浮动目录在交互式 RMarkdown 中不起作用
- c# - C# 在嵌入 WPF 时设置 Spellcheck.IsEnabled 时出错