Git: Як перерахувати лише місцеві відділення?


935

git branch -a показує як віддалені, так і місцеві відділення.

git branch -r показує віддалені гілки.

Чи є спосіб перерахувати лише місцеві відділення?

Відповіді:


1443

Просто git branchбез варіантів.

На сторінці сторінки:

Без аргументів, наявні гілки перераховані, і поточна гілка буде виділена зірочкою.


24
Я сподівався знайти спосіб перерахувати місцеві відділення, які не мають відповідного віддаленого відділення.
Стів Крейн

5
Не повністю, але відповіді на моє запитання Як перерахувати місцеві відділення, які не мають віддаленої гілки, надають певну допомогу.
Стів Крейн

3
@ c00kiemon5ter Мені подобається, як ти все-таки знайшов спосіб отримати купу очок! Так смішно.
Абрам

4
як це правильна відповідь на запитання ("... до списку * тільки місцеві відділення ...") ???
Вагнер да Сілва

7
@ gr4viton: У діалектах англійської мови, з якими я знайомий, "список лише локальних гілок" зазвичай розбирається як "список лише тих гілок, які є локальними". (Щоб сказати «перерахуйте ті гілки, які є лише місцевими», я б сказав «перерахуйте гілки, які містять лише місцеві».)
Матьє К.

221

просто звичайна команда

git branch

5
Ця відповідь має точно такий же штамп часу, що і прийнята відповідь. Прийнята відповідь повинна бути попереду в мілісекундній частині :)
RBT

4
@RBT Наведіть курсор миші на часи. Ця відповідь була на 9 секунд швидшою.
Кевін Уордман

1
c00kiemon5ter заслуговує на заслугу за відповідь!
skydev

75

git branch -a- Усі гілки.

git branch -r- Тільки віддалені гілки.

git branch -l або git branch- лише місцеві відділення.


Для мене форматування цієї відповіді пропонує -lпідсумки --local, хоча це насправді --list. Я б запропонував видалити його, щоб уникнути плутанини - технічно всі команди в цій відповіді могли використовувати, -lі вони все одно повернуть однакові результати.
Тібо Колас

34

Якщо провідна зірочка є проблемою, я передаю git branchнаступне

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

Це також виключає рядок "(без гілки)", яка з’являється, коли ви від'єднали голову.


1
Довелося змінити це на git branch | awk -F ' +' '$2 !~ /detached/ {print $2}'для git версії 1.9.1.
iurii

6
cut -c 3-є більш простим варіантом
Олексій

32

Один з найпростіших способів зробити це

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

Це чудово працює і для сценаріїв.


12

Ось як перелічити місцеві гілки, які не мають віддаленої гілки за походженням з такою ж назвою:

git branch | sed 's|* |  |' | sort > local
git branch -r | sed 's|origin/||' | sort > remote
comm -23 local remote

3
Приємно, також oneliner: comm -23 <(git branch | sed 's|* | |' | sort) <(git branch -r | sed 's|origin/||' | sort )
gr4viton

10

Інший спосіб отримати список лише місцевого відділення:

git branch -a | grep -v 'remotes'

4

Є чудова відповідь на повідомлення про те, як видалити лише локальні гілки. У ньому хлопець будує команду для перерахування місцевих гілок:

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

У відповіді є чудове пояснення того, як була отримана ця команда, тому я б запропонував вам піти і прочитати цю публікацію.


Дякую за посилання на відповідь. Мені знадобився альго, щоб перелічити місцеві гілки, які НЕ відслідковують віддалений. Цей єдиний, хто робить цю роботу.
JuroOravec

2

Щоб доповнити відповідь @ gertvdijk - я додаю кілька скріншотів, якщо це допоможе комусь швидко.

На моїй шкаралупі git bash

git гілка

команда без будь-яких параметрів показує всі мої локальні гілки. Поточна гілка, яка зараз перевіряється, відображається в іншому кольорі (зеленому) разом із префіксом зірочки (*), який справді інтуїтивно зрозумілий.

введіть тут опис зображення

Коли ви намагаєтеся бачити всі гілки, включаючи віддалені гілки, що використовують

git гілка -а

команда, то віддалені гілки, які ще не перевірені, відображаються червоним кольором:

введіть тут опис зображення


1
Тисяча слів, з яких не можна скопіювати?
Тоні Адамс

2
@TonyAdams Вибачте, якщо мені щось не вистачає, але обидві команди, вихід яких я відображав на малюнках, були згадані на сірому тлі (форматування коду) у публікації. Неважливо, я покращив форматування публікації, щоб зробити її ще читабельнішою. Вдячні за ваші відгуки.
RBT
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.