git branch --list' hotfix '返回分支名称中包含单词“ hotfix”的分支列表,而 git for-each-ref --format ='%(authorname)''修补程序'不返回任何内容,甚至不返回 / n 符号>
答案 0 :(得分:1)
正如git for-each-ref
中的the document所说,
如果给出一个或多个模式,则仅显示匹配的裁判 针对至少一种模式,使用fnmatch(3)或按字面意义 后一种情况完全匹配,或者从一开始就匹配 斜线。
并且正如fnmatch
中的the document所说,
fnmatch()函数检查字符串参数是否与 模式参数,它是外壳通配符模式(请参阅glob(7))。
并且由于分支就像路径refs/heads/foo/bar
,因此此处的模式应为refs/heads/**/*hotfix*
,
git for-each-ref --format='%(authorname)' 'refs/heads/**/*hotfix*'
如果您还想要远程分支机构,
git for-each-ref --format='%(authorname)' 'refs/heads/**/*hotfix*' 'refs/remotes/**/*hotfix*'
这两个模式匹配hotfix
,origin/hotfix-118
,hotfix-118
,118-hotfix
,my-hotfix-110
等分支。
答案 1 :(得分:1)
git branch
仅在分支(即refs/heads
中的refs)中查找(默认情况下),因此它使您可以使用仅与“分支名称”匹配的模式(例如some-hotfix
实际上是完整引用名称refs/heads/some-hotfix
的简写。
for-each-ref
正在查看所有引用,因此不允许您使用此类模式。如果您知道自己只对分支感兴趣,则可以使用refs/heads/*hotfix*
之类的东西(如果不是,则可以使用**/*hotfix*
之类的东西)。