我有git分支,一些以“fix-”开头,另一些以“hotfix-”开头。我想只列出以“fix-”开头的那些。为此我尝试使用:git branch | grep ^fix
但这不会产生任何输出。如果我git branch | grep fix
我得到了所有的分支。看起来好像在我的分支名称之前还有其他一些看不见的字符,或者我不知道......你能帮助我吗?
答案 0 :(得分:1)
没有不可见的字符,但可能有一些可见的字符(如当前分支上的*
,以及其他分支上的空格,使列整齐排列。
因此,一种选择是使用像^..fix
这样的模式;但是你在这里处于灰色地带,使用脚本技术来解析对一个人来说意味着的输出。
另一个选择是使用branch命令中内置的模式匹配,而不是grep:
git branch fix*
如果这是出于脚本目的,您可能应该处理输出格式git for-each-ref
。
答案 1 :(得分:0)
我明白了!正如@torek建议的那样,在分支名称之前有空格与
对齐* current_branch_name
由于分支机构名称不包含空格字符(至少我不使用它们)
git branch | grep '\sfix-'
解决了我的问题,因为前面带有\s
的任何字符串都意味着它位于分支名称的开头。谢谢!
答案 2 :(得分:-1)
git branch | grep '^ fix-'
注2个空格。