Git:如何仅列出本地分支机构?


935

git branch -a 显示远程和本地分支。

git branch -r 显示远程分支。

有没有办法只列出本地分支机构?

Answers:


1443

只是git branch没有选择。

从联机帮助页:

不带参数的情况下,将列出现有分支,并且当前分支将以星号突出显示。


24
我希望找到一种列出没有相应远程分支的本地分支的方法。
史蒂夫·克兰

5
不完全是,但是可以回答我的问题。如何列出没有远程分支的本地分支可以提供一些帮助。
史蒂夫·克兰

3
@ c00kiemon5ter我喜欢你如何找到一种获得积分的方法!真有趣
艾布拉姆(Abram)2015年

4
这是对所问问题的正确答案(“ ...列出*仅是当地分支机构...”)?????
瓦格纳·达席尔瓦

7
@ gr4viton:在我熟悉的英语方言中,“仅列出本地分支”通常解析为“仅列出本地分支”。(要说“列出仅本地的分支”,我要说“列出仅本地的分支”。)
Mathieu K.

221

只是普通的命令

git branch

5
此答案与接受的答案具有完全相同的时间戳。接受的答案必须在毫秒部分之前:)
RBT

4
@RBT将鼠标移到时间上。这个答案快了9秒。
凯文·沃克曼

1
c00kiemon5ter应该得到答案!
skydev

75

git branch -a- 所有分支。

git branch -r- 仅远程分支。

git branch -lgit branch- 仅本地分支机构。


对我来说,这个答案的格式表明了-l立场--local,而实际上却是--list。我建议删除它以避免这种混淆-从技术上讲,此答案中的所有命令都可以使用,-l并且它们仍然会返回相同的结果。
Thibaud Colas

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-是一个更简单的选择
Alexey


12

以下是列出原始名称中没有远程分支的本地分支的方法:

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

3
不错,也是一个班轮: 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分支-a

命令,然后尚未签出的远程分支显示为红色:

在此处输入图片说明


1
一千个单词不能复制?
托尼·亚当斯

2
@TonyAdams很抱歉,如果我丢失了某些内容,但帖子中显示为灰色背景(代码格式)的我在图片中显示的两个命令均已提及。没关系,我已经改进了帖子的格式以使其更具可读性。感谢您的反馈。
RBT
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.