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.