Перейти к основному содержимому

Как получить текущее имя ветки в Git

· 3 мин. чтения

1. Обзор

Git стал популярной и широко используемой системой контроля версий в отрасли. Обычно, когда мы работаем с репозиторием Git, мы работаем с ветками.

В этом руководстве мы рассмотрим, как получить имя ветки, над которой мы сейчас работаем.

2. Введение в проблему

Прежде всего, давайте подготовим репозиторий Git под названием myRepo :

$ git branch -a
* feature
master
remotes/origin/HEAD -> origin/master
remotes/origin/master

Как видно из вывода команды git branch , у нас есть две локальные ветки в myRepo , и теперь текущая проверенная ветвь является веткой feature , так как перед « feature » стоит символ «*» .

Иногда мы можем захотеть получить только имя текущей ветки без всего списка ветвей. Например, если у нас много локальных веток в репозитории, мы можем получить длинный список веток. Или, когда мы пишем какие-то скрипты для автоматизации каких-то процессов, мы хотим только получить имя ветки и передать его другим командам.

Итак, теперь давайте посмотрим, как быстро получить текущую ветку « feature ».

3. Использование команды git symbolic-ref

Информация о текущей ветке хранится или связывается файлом .git/HEAD , в зависимости от версии Git. Например, на этом компьютере файл .git/HEAD содержит:

$ cat .git/HEAD
ref: refs/heads/feature

Итак, он указывает на символический ref . Команда git symbolic-ref позволяет нам читать и изменять символические ссылки . Мы можем использовать эту команду, чтобы получить короткое имя текущей ветки:

$ git symbolic-ref --short HEAD
feature

4. Использование команды git rev- parse

Начиная с Git версии 1.7, мы также можем использовать команду git rev-parse для получения имени текущей ветки :

$ git rev-parse --abbrev-ref HEAD
feature

5. Использование команды git name-rev

Команда Git git name-rev может найти символические имена для заданных версий. Поэтому, чтобы получить имя текущей ветки, мы можем прочитать имя rev HEAD :

$ git name-rev --name-only HEAD
feature

Как видно из приведенного выше вывода, команда git name-rev также печатает имя текущей ветки. Следует отметить, что мы добавили в команду опцию –name-only , чтобы исключить из вывода информацию о версии (HEAD) .

6. Использование команды git branch

Мы знаем, что если мы запустим команду git branch без каких-либо параметров, Git напечатает все локальные ветки и поместит текущую ветку в первую строку с символом «*» перед именем:

$ git branch
* feature
master

Поэтому мы можем проанализировать вывод команды git branch , чтобы получить имя ветки. Давайте посмотрим на пример объединения ветки git и команды sed :

$ git branch | sed -n '1{s/^* *//;p}'
feature

На самом деле, начиная с версии 2.22, Git представил опцию –show-current для команды git branch , чтобы мы могли напрямую получить имя текущей ветки:

$ git branch --show-current
feature

Очевидно, что эта команда лучше, чем синтаксический анализ вывода команды git branch .

7. Заключение

В этой быстрой статье мы рассмотрели несколько способов получить имя текущей ветки в репозитории Git.