Показать только текущую ветку в Git - PullRequest
303 голосов
/ 13 сентября 2009

Я пытался найти специальную команду git для этого, но не смог ее найти. Может кто-нибудь предложить что-нибудь короче или быстрее, чем:

git branch | awk '/\*/ { print $2; }'

Ответы [ 11 ]

557 голосов
/ 13 сентября 2009
$ git rev-parse --abbrev-ref HEAD
master

Это должно работать с Git 1.6.3 или новее.

109 голосов
/ 18 сентября 2013

В Git 1.8.1 вы можете использовать команду git symbolic-ref с опцией "--short":

$ git symbolic-ref HEAD
refs/heads/develop
$ git symbolic-ref --short HEAD
develop
25 голосов
/ 13 сентября 2009

Вас может заинтересовать вывод

git symbolic-ref HEAD

В частности, в зависимости от ваших потребностей и макета вы можете сделать

basename $(git symbolic-ref HEAD)

или

git symbolic-ref HEAD | cut -d/ -f3-

и затем снова есть файл .git/HEAD, который также может вас заинтересовать.

15 голосов
/ 10 марта 2019

С Git 2.22 (Q2 2019) у вас будет более простой подход: git branch --show-current.

См. коммит 0ecb1fc (25 октября 2018 г.) от Дэниелс Умановскис (umanovskis) .
(Объединено Junio ​​C Hamano - gitster - в коммит 3710f60 , 07 марта 2019 г.)

branch: ввести --show-current опция отображения

При вызове с --show-current, git branch напечатает текущий название филиала и прекратить.
Только фактическое имя печатается без refs/heads.
В отключенном состоянии HEAD ничего не выводится.

Предназначен как для написания сценариев, так и для интерактивного / информативного использования.
В отличие от git branch --list, для получения название филиала.

12 голосов
/ 11 апреля 2013

Это старая тема, на которую я только что наткнулся. Из того, что я могу сказать, нет никакого способа показать только текущую ветку в GIT, поэтому я использовал:

#> git branch | grep '*'
7 голосов
/ 15 февраля 2018

Полагаю, это должно быть быстро и может быть использовано с Python API.

git branch --contains HEAD
* master
4 голосов
/ 13 сентября 2009

Я использую

/etc/bash_completion.d/git

Он поставляется с git и предоставляет приглашение с именем ветви и завершением аргумента.

1 голос
/ 23 мая 2018

Это не короче, но это касается и отдельных веток:

git branch | awk -v FS=' ' '/\*/{print $NF}' | sed 's|[()]||g'
0 голосов
/ 24 июня 2019

Когда вы используете git из Cloud Build , вы даже можете получить его короче :

$ echo $BRANCH_NAME
master

Чтобы использовать его, см. Пример кода ниже:
- положить в файл с именем cloudbuild.yaml в репо
- запуск репо (в настоящее время поддерживается только GitHub и BitBucket).

steps:
- name: 'gcr.io/cloud-builders/git'
  entrypoint: 'bash'
  args:
  - '-c'
  - |
        echo $BRANCH_NAME
0 голосов
/ 02 мая 2019

Просто использование git branch работает для меня.

Git Версия: 2.13.2

...