Как получить имя основной ветки git из командной строки? - PullRequest
0 голосов
/ 20 марта 2019

Как получить имя основной ветви из командной строки / терминала?

Я знаю, что основная ветвь по умолчанию называется master, однако ее можно переименовать во что угодно.

PS. Было бы неплохо получить название локальной и удаленной главной ветви.

Редактировать: То, что я называю main branch, другие могут назвать default branch или stable branch. Это тот, в который вы (должны) объединить все (стабильное / работающее).

Ответы [ 2 ]

1 голос
/ 20 марта 2019

вы, вероятно, хотите использовать эту команду git branch -r, -r только для списка удаленных ветвей, если вы хотите перечислить оба варианта использования -a. Обычно главная ветвь указывает на origin/HEAD что-то вроде этого origin/HEAD -> origin/master

0 голосов
/ 01 апреля 2019

У меня нет глубоких знаний о git, однако в git обычно есть {remote}/HEAD, например, origin/HEAD.Вот выдержка из справочной страницы git remote:

 set-head

    Sets or deletes the default branch (i.e. the target of the
    symbolic-ref refs/remotes/<name>/HEAD) for the named remote.
    Having a default branch for a remote is not required, but allows
    the name of the remote to be specified in lieu of a specific
    branch. For example, if the default branch for origin is set to
    master, then origin may be specified wherever you would normally
    specify origin/master.

Из этого я понимаю, что {remote}/HEAD является основной / стандартной веткой {remote}.Можно получить имя ветви, используя это (кто-нибудь знает команду лучше / слесарное дело?):

# With "remotes/"
git branch -r | grep -Po "HEAD -> \K.*$"
remotes/origin/master

# Without "remotes/"
git branch -r | grep -Po "HEAD -> remotes/\K.*$"
origin/master

Когда кто-то хочет получить локальную ветку main / default, обычно нет HEADветвь, однако обычно есть одна-единственная ветвь, которая отслеживает {remote}/HEAD, имя которого мы можем использовать (опять же, безусловно, это лучшая команда):

git branch -vv | grep -Po "[ *gb]*\K[^ ]*(?=[ ][ 0-9a-f]* \[$(git branch -r | grep -Po "HEAD -> \K.*$"))"
master
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...