Git:どうすればローカルブランチのみをリストできますか?


935

git branch -a リモートブランチとローカルブランチの両方を示しています。

git branch -r リモートブランチを示しています。

ローカルブランチだけをリストする方法はありますか?

回答:


1444

ただ、git branchオプションなし。

マンページから:

引数がない場合、既存のブランチがリストされ、現在のブランチがアスタリスクで強調表示されます。


25
対応するリモートブランチがないローカルブランチを一覧表示する方法を見つけたいと思っていました。
スティーブクレーン2014年


3
@ c00kiemon5terとにかくたくさんのポイントを獲得する方法を見つけたのが大好きです!とても面白い。
Abram

4
これはどのようにして尋ねられたものに対する正しい答えですか(「... ローカルブランチだけをリストするには...」)???
Wagner da Silva

7
@ gr4viton:私がよく知っている英語の方言では、「ローカルブランチのみをリストする」は通常「ローカルブランチのみをリストする」として解析されます。(「ローカルのみのブランチをリストする」と言うには、「ローカルのみのブランチをリストする」と言います。)
Mathieu K.

221

単なるコマンド

git branch

5
この回答のタイムスタンプは、受け入れられた回答とまったく同じです。受け入れられた回答はミリ秒の部分で先行している必要があります:)
RBT

4
@RBTマウスオーバー時間。この答えは9秒速くなりました。
Kevin Workman、2018年

1
c00kiemon5terは答えのクレジットに値します!
skydev

75

git branch -a- すべてのブランチ。

git branch -r- リモートブランチのみ。

git branch -l またはgit 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 14年

6
cut -c 3-簡単なオプションです
Alexey

33

それを行う最も簡単な方法の1つは、

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
ニース、またワンライナー: comm -23 <(git branch | sed 's|* | |' | sort) <(git branch -r | sed 's|origin/||' | sort )
gr4viton 2017年

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 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.