git for-each-ref с <pattern>ничего не возвращает - PullRequest
0 голосов
/ 24 июня 2019

git branch --list ' hotfix ' возвращает список ветвей, содержащих слово «hotfix» внутри имени ветви, тогда как git for-each-ref --format = '% (имя автора)' ' исправление ' ничего не вернуть, даже / n символ

Ответы [ 2 ]

1 голос
/ 24 июня 2019

git branch ищет (по умолчанию) только ветви - ссылки в refs/heads - поэтому он позволяет вам использовать шаблоны, которые соответствуют только «имени ветви» (например, some-hotfix, что на самом деле является сокращением для полногоref name refs/heads/some-hotfix).

for-each-ref просматривает все ссылки, поэтому не позволяет использовать такие шаблоны.Вы можете использовать что-то вроде refs/heads/*hotfix*, если вы знаете, что вас интересуют только ветки (или что-то вроде **/*hotfix*, если нет).

1 голос
/ 24 июня 2019

Как документ из git for-each-ref говорит,

Если дан один или несколько шаблонов, отображаются только ссылки, которые соответствуют хотя бы одному шаблону, либо с использованием fnmatch(3) или буквально, в последнем случае, полностью совпадая или с самого начала до косой черты.

и как документ из fnmatch говорит,

Функция 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*'

2 шаблона соответствуют ветвям, таким как hotfix,origin/hotfix-118, hotfix-118, 118-hotfix, my-hotfix-110.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...