如何使用git命令筛选包含指定关键词AMAZONFIX的分支名称
解决方案
核心修改逻辑为在原有Git命令的输出后新增筛选逻辑,匹配包含AMAZONFIX字符串的内容即可实现需求。
原有命令存在小问题:while read date branch的参数不足,因为git for-each-ref的format配置输出了「提交日期、作者相对日期、分支名」3个字段,原有写法会把作者相对日期的内容也塞到branch变量中,导致分支名内容错位,修改后的方案同时修正了该问题。
方案1:使用grep筛选(最简实现)
git for-each-ref --format='%(committerdate:short) %(authordate:relative) %(refname:lstrip=3)' --sort -committerdate refs/remotes/$REMOTE_NAME | grep "AMAZONFIX" | while read date authordate_relative branch; do printf "%s | %s | %50s\n" $date $authordate_relative $branch done
如果不需要保留日期、作者相对时间的输出,仅需要输出纯分支名,可以直接简化为:
git for-each-ref --format='%(refname:lstrip=3)' --sort -committerdate refs/remotes/$REMOTE_NAME | grep "AMAZONFIX"
方案2:精准匹配分支名字段(避免极端误匹配)
如果需要完全排除日期字段出现匹配内容的可能性(出现概率极低),可以用awk仅对第三段的分支名字段做匹配:
git for-each-ref --format='%(committerdate:short) %(authordate:relative) %(refname:lstrip=3)' --sort -committerdate refs/remotes/$REMOTE_NAME | awk '$3 ~ /AMAZONFIX/' | while read date authordate_relative branch; do printf "%s | %s | %50s\n" $date $authordate_relative $branch done
内容的提问来源于stack exchange,提问作者rowoc
相关产品推荐
相关产品推荐

