Вопрос по git-branch, git – Git: Как мне перечислить только местные филиалы?

793

git branch -a показывает как удаленные, так и локальные филиалы.

git branch -r показывает удаленные ветки.

Есть ли способ перечислить только местные филиалы?

Ваш Ответ

9   ответов
2

ответ на пост о том, как удалить только локальные филиалы. В нем парень создает команду для перечисления локальных ветвей:

git branch -vv | cut -c 3- | awk '$3 !~/\[/ { print $1 }'

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

25

git for-each-ref --format='%(refname:short)' refs/heads/

Это прекрасно работает и для скриптов.

34

git branch следующее

git branch | awk -F ' +' '! /\(no branch\)/ {print $2}'

Это также устраняет «(без ответвления)»; линия, которая появляется, когда вы отсоединили голову.

cut -c 3- это более простой вариант
Пришлось изменить этоgit branch | awk -F ' +' '$2 !~ /detached/ {print $2}' для git версии 1.9.1.
Для сценариев это также хорошо (может быть, лучше):git for-each-ref --format='%(refname:short)' refs/heads/
1231

git branch без вариантов.

С главной страницы:

With no arguments, existing branches are listed and the current branch will be highlighted with an asterisk.

Я надеялся найти способ перечислить локальные ветви, которые не имеют соответствующей удаленной ветви.
@ c00kiemon5ter Мне нравится, как ты нашел способ получить кучу очков в любом случае! Так смешно
как это правильный ответ на вопрос (& quot; ... к списку*just the local ветви ... & Quot;) ???
@ gr4viton: На диалектах английского языка, с которыми я знаком, & quot; перечислять только местные филиалы & quot; обычно разбирается как "перечисляет только те локальные ветви". (Сказать «перечислить только те локальные ветви», я бы сказал «перечислить только локальные ветви».)
Не полностью но ответы на мой вопросHow do I list local branches that have no remote branch оказать некоторую помощь
10

которые не имеют удаленной ветки в источнике с тем же именем:

git branch | sed 's|* |  |' | sort > local
git branch -r | sed 's|origin/||' | sort > remote
comm -23 local remote
Хороший, также oneliner:comm -23 <(git branch | sed 's|* | |' | sort) <(git branch -r | sed 's|origin/||' | sort )
20

git branch -a // все ветви

git branch -r // только удаленные ветки.

git branch -l  ИЛИ ЖЕgit branch // только локальные филиалы.

0

в на случай, если кому-то поможет быстро.

На моей оболочке git bash

git branch

Команда без параметров показывает все мои локальные ветки. Текущая ветвь, котораяcurrently checked out is also shown in different color (green) наряду со звездочкой, которая действительно интуитивно понятна.

enter image description here

При попытке увидеть все ветви, включая удаленные ветви, используя

git branch -a

команда, тогда удаленные ветви, которые еще не проверены, показаны красным цветом:

enter image description here

Тысяча слов, из которых нельзя скопировать?
@TonyAdams Мне очень жаль, если я что-то упустил, но обе команды, чей вывод я отображал на рисунках, были упомянуты на сером фоне (форматирование кода) в посте. Не берите в голову, я улучшил форматирование сообщения, чтобы сделать его еще более читабельным. Ценю ваши отзывы.
191

просто команда

git branch
@RBT Наведите курсор мыши на времена. Этот ответ был на 9 секунд быстрее.
@KevinWorkman не 9 секунд, это 11 (определенный блок)
@KevinWorkman О, здорово! Я не знал, что вся метка времени показывается там как подсказка. Спасибо, что поделился.
Этот ответ имеет ту же отметку времени, что и принятый ответ. Принятый ответ должен быть впереди в миллисекундной части :)
@EntryLeveDeveloper, что определенная единица - только секунды. Разве это не так?Z текст в метке времени представляет часовой пояс GMT.
9

git branch -a | grep -v 'remotes'

Похожие вопросы