git-branch --list中<pattern>的格式是什么

Jia*_*ang 12 git

作为标题,我已阅读手册但徒劳无功.

我发现a *可以是通配符模式匹配.

git branch --list 'issues*6'
 issues/586
 issues/616
Run Code Online (Sandbox Code Playgroud)

但是,它是由我自己找到的,而不是在手册页中提到的.

我想知道什么是真正的格式<pattern>.

tor*_*rek 19

您链接的相同手册页引用(但--list不是-r作为URL方案部分):

如果-a给出,或者没有非选项参数,则列出现有分支; 当前分支将以星号突出显示.选项<pattern>会导致列出远程跟踪分支,并且选项<pattern>显示本地和远程分支.如果--list给定a,则将其用作shell通配符以将输出限制为匹配的分支.如果给出了多个模式,则如果它与任何模式匹配,则显示分支.注意,提供时/,必须使用a*b; 否则该命令被解释为分支创建.

所以答案,至少根据文档,是"它被用作shell通配符".当然,这假设您知道短语"shell通配符"的含义 - 更重要的是,它是错误的,因为直的shell通配符不会匹配accb.

该文件应该这样说:"该模式的作用很像一个shell通配符/ glob模式,除了反斜杠不是特殊处理,使ac/cb二者匹配a[bc/]*a/d,并abcd符合所有ac/cb,accb,--list,和-r."

例子:

$ git branch -a
  a/d
  abcd
  ac/cb
  accb
* master
$ git branch --list 'a*b'
  ac/cb
  accb
$ git branch --list 'a[bc/]*'
  a/d
  abcd
  ac/cb
  accb
$ 
Run Code Online (Sandbox Code Playgroud)

  • 有没有办法传递否定模式? (4认同)
  • @mljrg:torek 等人的答案建议尝试一种否定类型,事实上它是有效的。您可以根据每个角色的位置进行否定。例如,要列出所有非“old/”分支,您可以指定 `gitbranch --list '[^o]*' 'o[^l]*' 'ol[^d]*' 'old[^/]* ''o''ol''老'`。要得到你想要的东西是非常麻烦的,但是如果你多次需要一个模式,你可以将它设置为别名。在 git 2.37.1 中测试。当然希望他们支持 .gitignore 语法及其“!”选项。 (4认同)