Как получить текущее название ветки в Git? - PullRequest
2142 голосов
/ 06 июня 2011

Я из Subversion, и когда у меня была ветка, я знал, над чем я работал, с «Эти рабочие файлы указывают на эту ветку».

Но с Git я не уверенкогда я редактирую файл в NetBeans или Notepad ++, привязан ли он к мастеру или к другой ветви.

Нет проблем с git в bash, он говорит мне, что я делаю.

Ответы [ 37 ]

12 голосов
/ 09 августа 2012

В Netbeans убедитесь, что аннотации управления версиями включены («Просмотр» -> «Показать метки управления версиями»).Затем вы можете увидеть название ветви рядом с именем проекта.

http://netbeans.org/bugzilla/show_bug.cgi?id=213582

11 голосов
/ 03 мая 2016

У меня есть простой скрипт с именем git-cbr ( текущая ветвь ), который печатает имя текущей ветви.

#!/bin/bash

git branch | grep -e "^*"

Я поместил этот скрипт в пользовательскую папку (~/.bin).Папка находится в $PATH.

Так что теперь, когда я в git-репо, я просто набираю git cbr, чтобы распечатать имя текущей ветви.

$ git cbr
* master

Этоработает, потому что команда git получает свой первый аргумент и пытается запустить скрипт с именем git-arg1.Например, git branch пытается запустить скрипт с именем git-branch и т. Д.

10 голосов
/ 17 ноября 2016

Следующая команда оболочки сообщает вам ветку, в которой вы находитесь.

git branch | grep ^\*

Когда вы не хотите вводить эту длинную команду каждый раз, когда хотите узнать ветку и используете Bash, дайте команде короткий псевдоним, например, псевдоним cb, например, так:

alias cb='git branch | grep ^\*'

Когда вы находитесь в мастере ветвления и у вас приглашение $, вы получите * master следующим образом.

$ cb
* master
10 голосов
/ 14 октября 2016

Вы можете навсегда настроить вывод bash для отображения имени вашей git-ветви. Это очень удобно, когда вы работаете с разными ветками, не нужно постоянно набирать $ git status. Github repo git-aware-prompt .

Откройте свой терминал (ctrl-alt-t) и введите команды

mkdir ~/.bash
cd ~/.bash
git clone git://github.com/jimeh/git-aware-prompt.git

Отредактируйте ваш .bashrc с помощью команды sudo nano ~/.bashrc (для Ubuntu) и добавьте в начало следующее:

export GITAWAREPROMPT=~/.bash/git-aware-prompt
source "${GITAWAREPROMPT}/main.sh"

Затем вставьте код

export PS1="\${debian_chroot:+(\$debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \[$txtcyn\]\$git_branch\[$txtred\]\$git_dirty\[$txtrst\]\$ "

в конце того же файла, в который вы вставили код установки ранее. Это даст вам цветной вывод: enter image description here

8 голосов
/ 20 августа 2014

Если вы действительно хотите, чтобы последний ветвь / тег был извлечен также в отключенном состоянии HEAD.

git reflog HEAD | grep 'checkout:' | head -1 | rev | cut -d' ' -f1 | rev

Обновление Это лучше, если у вас есть и не страшно awk.

git reflog HEAD | grep 'checkout:' | head -1 | awk '{print $NF}'
8 голосов
/ 13 января 2018
git status 

также выдаст название ветви вместе с изменениями.

например

>git status
On branch master // <-- branch name here
.....
7 голосов
/ 17 октября 2017

Возвращает либо имя ветви, либо SHA1 при отсоединенной головке:

git rev-parse --abbrev-ref HEAD | grep -v ^HEAD$ || git rev-parse HEAD

Это короткая версия ответа @ dmaestro12 без поддержки тегов.

6 голосов
/ 21 августа 2014

Я знаю, что уже поздно, но на linux / mac из терминала вы можете использовать следующее:

git status | sed -n 1p

Объяснение:

git status -> получает статус рабочего дерева
sed -n 1p -> получает первую строку из тела статуса

Ответ на приведенную выше команду будет выглядеть следующим образом:

"On branch your_branch_name"
5 голосов
/ 31 октября 2016

Добавьте его к PS1, используя Mac:

PS1='\W@\u >`[ -d .git ] && git branch | grep  ^*|cut -d" " -f2`> $ '

Перед запуском указанной выше команды:

enter image description here

После выполнения этой команды:

enter image description here

Не беспокойтесь, если это не GIT-репозиторий, он не отобразит ошибку из-за [-d .git], который проверяет, существует ли папка .git или нет.

5 голосов
/ 11 марта 2014

вы также можете использовать переменную GIT_BRANCH, как показано здесь: https://wiki.jenkins -ci.org / display / JENKINS / Git + Plugin

Плагин git устанавливает несколько переменных окружения, которые вы можете использоватьв ваших сценариях:

GIT_COMMIT - SHA текущего

GIT_BRANCH - Имя используемой в данный момент ветви, например, "master" или "origin / foo"

GIT_PREVIOUS_COMMIT -SHA предыдущего встроенного коммита из той же ветви (текущий SHA для первой сборки в ветви)

GIT_URL - Удаленный URL-адрес репозитория

GIT_URL_N - Удаленные URL-адреса репозитория при наличии более 1 удаленного объекта,например, GIT_URL_1, GIT_URL_2

GIT_AUTHOR_EMAIL - электронная почта коммиттера / автора

GIT_COMMITTER_EMAIL - электронная почта коммиттера / автора

...