使用git ls-remote --heads查询远程分支时如何过滤带-TP后缀的分支
解决方案
你可以通过管道结合grep的反向匹配功能直接过滤掉带-TP后缀的分支,不需要修改原有git ls-remote的查询规则,完整命令如下:
git ls-remote --heads https://github.com/companyname/gitreponame release/branchname-* | grep -v -- '-TP'
参数说明:
-v是grep的反向匹配参数,会排除所有包含指定字符串的结果行--用于避免分支名中存在-开头的内容时被误识别为grep的命令参数,提升命令兼容性
如果你需要直接得到去掉提交ID、仅保留纯分支名的结果,可以使用如下进阶命令:
git ls-remote --heads https://github.com/companyname/gitreponame release/branchname-* | grep -v -- '-TP' | awk '{print $2}' | sed 's#refs/heads/##'
注:
git ls-remote原生的通配符匹配规则不支持否定逻辑,结合shell文本处理工具过滤是目前最简便高效的实现方式。
内容的提问来源于stack exchange,提问作者Swati Jha
相关产品推荐
相关产品推荐

