我希望git branch -a
仅显示远程分支的子集,例如以'origin / iliaskarim'之类的前缀开头的分支
完成此任务的最好方法是什么?
答案 0 :(得分:4)
假设您处于bash上下文中,只需将(|
)传递到grep
?
git branch -a | grep origin/iliaskarim
然后,如果您想同时和这两个远程分支的子集和所有本地分支,也许只考虑链接命令?
git branch -a | grep origin/iliaskarim; git branch
答案 1 :(得分:1)
前端git branch
命令没有简便的方法。
但是,如果您使用类似名称空间的前缀(例如origin/iliaskarim/
(请注意尾部斜杠))git for-each-ref
,这是实现git branch
的管道命令, 有一个很好的方法来做到这一点。特别是:
git for-each-ref refs/remotes/origin/iliaskarim
足以迭代那些名称,并且仅迭代那些名称。您仍然必须将其与其他命令和/或选项放在一起才能获得有限git branch -a
的效果。
(编辑:为phd notes in a comment,如果在此处不使用斜杠分隔符,也可以将模式匹配与显式的glob-star:refs/remotes/origin/iliaskarim*
一起使用。记住要保护星形外壳(如果使用外壳)。
使用grep -v
作为管道来过滤掉包含remotes/origin/
但不继续使用iliaskarim
的名称是另一种选择。 (请参见RomainValeri's answer;此处的想法是反转测试,删除匹配某些正则表达式的 do 分支。提供合适的RE,具体取决于您的grep使用哪种表达式语法支持,请作为练习。:-))
答案 2 :(得分:0)
git branch -r --list origin / iliaskarim *