Git: Bagaimana cara saya mendaftar hanya cabang lokal?


935

git branch -a menunjukkan cabang terpencil dan lokal.

git branch -r menunjukkan cabang jarak jauh.

Apakah ada cara untuk mendaftar hanya cabang lokal?

Jawaban:


1444

Hanya git branchtanpa opsi.

Dari halaman manual:

Tanpa argumen, cabang yang ada terdaftar dan cabang saat ini akan disorot dengan tanda bintang.


25
Saya berharap menemukan cara untuk membuat daftar cabang lokal yang tidak memiliki cabang terpencil yang sesuai.
Steve Crane

5
Tidak sepenuhnya tetapi jawaban atas pertanyaan saya Bagaimana cara mendaftar cabang lokal yang tidak memiliki cabang jarak jauh memberikan bantuan.
Steve Crane

3
@ c00kiemon5ter Saya suka bagaimana Anda menemukan cara untuk mendapatkan banyak poin! Sangat lucu.
Abram

4
bagaimana ini jawaban yang tepat untuk apa yang diminta ("... untuk mendaftar * hanya cabang lokal ...") ???
Wagner da Silva

7
@ gr4viton: Dalam dialek bahasa Inggris yang saya kenal, "daftarkan saja cabang lokal" biasanya diurai sebagai "daftar hanya cabang-cabang yang lokal". (Untuk mengatakan "daftar cabang-cabang yang hanya lokal", saya akan mengatakan "daftar cabang-cabang hanya lokal".)
Mathieu K.

221

hanya perintah biasa

git branch

5
Jawaban ini memiliki cap waktu yang persis sama dengan jawaban yang diterima. Jawaban yang diterima harus ada di bagian depan dalam milidetik :)
RBT

4
@RBT Mouseover waktu. Jawaban ini 9 detik lebih cepat.
Kevin Workman

1
c00kiemon5ter layak mendapatkan pujian atas jawabannya!
skydev

75

git branch -a- Semua cabang.

git branch -r- Cabang terpencil saja.

git branch -l atau git branch- Cabang lokal saja.


Bagi saya, format jawaban ini menyarankan -lsingkatan --local, sedangkan sebenarnya --list. Saya akan menyarankan menghapusnya untuk menghindari kebingungan itu - secara teknis semua perintah dalam jawaban ini dapat digunakan -ldan mereka masih akan mengembalikan hasil yang sama.
Thibaud Colas

34

Jika tanda bintang utama bermasalah, saya beri tanda pipa git branchsebagai berikut

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

Ini juga menghilangkan garis '(tanpa cabang)' yang muncul ketika Anda telah melepaskan kepala.


1
Harus memodifikasi ini ke git branch | awk -F ' +' '$2 !~ /detached/ {print $2}'untuk git versi 1.9.1.
iurii

6
cut -c 3-adalah pilihan yang lebih mudah
Alexey

33

Salah satu cara paling mudah untuk melakukannya adalah

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

Ini berfungsi dengan baik untuk skrip juga.


12

Berikut ini cara membuat daftar cabang lokal yang tidak memiliki cabang jarak jauh dengan nama yang sama:

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

3
Nice, oneliner juga: comm -23 <(git branch | sed 's|* | |' | sort) <(git branch -r | sed 's|origin/||' | sort )
gr4viton

10

Cara lain untuk mendapatkan daftar hanya cabang lokal adalah:

git branch -a | grep -v 'remotes'

4

Ada jawaban yang bagus untuk sebuah posting tentang cara menghapus cabang lokal saja. Di dalamnya, orang itu membangun sebuah perintah untuk mendaftar cabang-cabang lokal:

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

Jawabannya memiliki penjelasan yang bagus tentang bagaimana perintah ini diturunkan, jadi saya sarankan Anda pergi dan membaca posting itu.


Terima kasih telah menghubungkan jawabannya. Saya membutuhkan algo untuk mendaftar cabang lokal yang TIDAK melacak remote. Yang ini adalah satu-satunya yang melakukan pekerjaan.
JuroOravec

2

Untuk melengkapi jawaban @ gertvdijk - Saya menambahkan beberapa tangkapan layar seandainya itu membantu seseorang dengan cepat.

Di shell bash git saya

cabang git

Perintah tanpa parameter menunjukkan semua cabang lokal saya. Cabang saat ini yang saat ini diperiksa ditampilkan dalam warna berbeda (hijau) bersama dengan awalan asterisk (*) yang benar-benar intuitif.

masukkan deskripsi gambar di sini

Ketika Anda mencoba melihat semua cabang termasuk menggunakan cabang jarak jauh

cabang git -a

perintah maka cabang jarak jauh yang belum diperiksa ditampilkan dalam warna merah:

masukkan deskripsi gambar di sini


1
Seribu kata yang tidak bisa disalin orang?
Tony Adams

2
@TonyAdams Saya minta maaf jika saya kehilangan sesuatu tetapi kedua perintah yang outputnya saya tampilkan di gambar disebutkan di latar belakang abu-abu (pemformatan kode) dalam posting. Sudahlah saya memperbaiki format postingan untuk membuatnya lebih mudah dibaca. Hargai umpan balik Anda.
RBT
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.