Saya sudah mencoba git branch -r
, tetapi itu hanya mencantumkan cabang jarak jauh yang telah saya lacak secara lokal. Bagaimana cara menemukan daftar yang belum saya miliki? (Tidak masalah bagi saya apakah perintah tersebut mencantumkan semua cabang jarak jauh atau hanya cabang yang tidak dilacak.)
git
branch
git-branch
remote-branch
James A. Rosen
sumber
sumber
git fetch
dangit remote update
tidak mengambil semua cabang remote? Karena kalau tidak, Anda bisa mengambil kemudian menggunakangit branch -r
...git branch -r
hanya menunjukkan kepada saya cabang-cabang terpencil yang telah saya lacak secara lokal. Ini bekerja lebih baik sekarang.Jawaban:
Untuk sebagian besar [1] pengunjung di sini, jawaban yang benar dan paling sederhana untuk pertanyaan "Bagaimana cara mendaftar semua cabang terpencil di Git 1.7+?" adalah:
Untuk minoritas kecil [1]
git branch -r
tidak berfungsi. Jikagit branch -r
tidak berhasil coba:Jika
git branch -r
tidak berfungsi, maka mungkin seperti yang dikatakan Cascabel "Anda telah memodifikasi refspec default, sehinggagit fetch
dangit remote update
jangan mengambil semuaremote
cabang" .[1] Pada saat penulisan catatan kaki 2018-Februari ini, saya melihat komentar dan melihat bahwa
git branch -r
karya - karya untuk sebagian besar (sekitar 90% atau 125 dari 140 ).Jika
git branch -r
tidak berfungsi, centanggit config --get remote.origin.fetch
berisi wildcard (*
) sesuai jawaban inisumber
git ls-remote [url]
sehingga Anda tidak perlu mengkloningnya terlebih dahulu :)git branch -r
karena itu adalah jawaban yang benar dan paling sederhana, penanya memiliki kasus khusus di mana ia memodifikasi perilaku miliknyagit branch -r
sehingga sebagian besar pengguna yang datang ke sini tidak akan havegit branch -r
juga tidak bekerja untuk saya. Itu hanya daftar cabang yang sudah dilacak secara lokal. Tetapigit ls-remote --heads
terdaftar semua cabang yang tersedia di repositori jarak jauh ...git ls-remote
(dan tidak terdaftar digit branch -r
), seseorang harus mengeksekusigit config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
sebelum mengambil seperti yang dijelaskan di stackoverflow.com/a/26649770/873282 .git fetch --all
sebelumnya untuk mendapatkan semua cabang jarak jauh saat ini.remote show
menunjukkan semua cabang di remote, termasuk yang tidak dilacak secara lokal dan bahkan yang belum diambil.Itu juga mencoba untuk menunjukkan status cabang relatif terhadap repositori lokal Anda:
sumber
branch_that_is_not_tracked tracked
?branch_that_is_not_tracked
adalah cabang yang tidak dilacak oleh cabang git lokal mana pun. Namun, telah diambil ke repositori lokal (jadi ada cabang jarak jauh). Untuk beberapa alasan anehgit remote show
menyebut keadaan initracked
, meskipun tidak ada cabang lokal yang melacak remote. Dalam hal ini, kebalikannyatracked
adalahnew
, yang berarti "tidak diambil".git branch -r
menyarankan bahwa masih ada cabang yang jauh, tetapigit remote show origin
menunjukkan iturefs/remotes/origin/my-now-dead-branch stale (use 'git remote prune' to remove)
. Jauh lebih bermanfaat!sumber
git branch -r
, yang menurut OP tidak cukup baik.git branch -a
dangit branch -r
daftar semua cabang jauh untuk saya, saya tidak yakin apakah apa yang dikatakan OP itu benar. Saya baru saja menyiapkan repositori tes dan memverifikasi ini (hanya memiliki asal pelacakan master / master tetapi masih melihat semua cabang jarak jauh dengan kedua bendera).git fetch
diikuti olehgit branch -a
, yang baru saja mulai gagal untuk saya. Mungkin perilaku git diubah?Menggunakan
git branch -r
daftar semua cabang jarak jauh dangit branch -a
daftar semua cabang di lokal dan jarak jauh. Daftar ini sudah ketinggalan zaman. Agar daftar ini tetap terbaru, jalankanyang akan memperbarui daftar cabang lokal Anda dengan semua yang baru dari jarak jauh dan menghapus yang tidak ada lagi. Menjalankan perintah pembaruan ini tanpa --prune akan mengambil cabang baru tetapi tidak menghapus yang tidak lagi pada remote.
Anda dapat mempercepat pembaruan ini dengan menentukan remote, jika tidak maka akan menarik pembaruan dari semua remote yang telah Anda tambahkan, seperti itu
sumber
Tapi
git branch -ar
harus melakukannya.
sumber
-r
mengembalikan hanya cabang jarak jauh.-a
mengembalikan cabang lokal dan remote. Dengan demikian,git branch -a
dangit branch -ar
keduanya menghasilkan output yang sama.Anda juga dapat melakukan
git fetch
diikuti oleh agit branch -r
. Tanpa mengambil Anda tidak akan melihat cabang-cabang terbaru.sumber
git fetch --all
untuk memiliki semua cabang saat iniGit Branching - Cabang Terpencil
Dokumentasi git .
sumber
heads/
masukrefs/heads/features/my-branch
, terima kasih!Cara paling sederhana yang saya temukan:
sumber
TL; TR;
Ini adalah solusi dari masalah Anda:
atau:
sumber
Perintah terbaik untuk dijalankan adalah
git remote show [remote]
. Ini akan menampilkan semua cabang, jarak jauh dan lokal, dilacak dan tidak terlacak.Berikut ini contoh dari proyek sumber terbuka:
Jika kita hanya ingin mendapatkan cabang jarak jauh, kita bisa menggunakan
grep
. Perintah yang ingin kita gunakan adalah:Dengan perintah ini:
Anda juga dapat membuat alias untuk ini:
Maka Anda bisa lari
git branches
.sumber
Dengan Git Bash , Anda dapat menggunakan:
sumber
Coba ini...
sumber
Jalankan saja sebuah
git fetch
perintah. Ini akan menarik semua cabang jarak jauh ke repositori lokal Anda, dan kemudian lakukangit branch -a
untuk mendaftar semua cabang.sumber
Jika ada cabang jarak jauh yang Anda tahu harus terdaftar, tetapi tidak terdaftar, Anda mungkin ingin memverifikasi bahwa asal Anda diatur dengan benar dengan ini:
Jika itu semua baik, mungkin Anda harus menjalankan pembaruan:
Dengan asumsi bahwa berjalan dengan sukses, Anda harus dapat melakukan apa yang jawaban lain katakan:
sumber
Menggunakan perintah ini,
Ini mencantumkan semua cabang jarak jauh termasuk pesan komit dan ID komit yang dirujuk oleh cabang jarak jauh.
sumber
Saya akan menggunakan:
Perintah ini tidak hanya menampilkan daftar semua cabang, termasuk cabang jarak jauh yang dimulai dengan
/remote
, tetapi juga memberikan Anda*
umpan balik tentang apa yang Anda perbarui dan komit terakhir.sumber
Pastikan asal jauh yang Anda daftarkan benar-benar repositori yang Anda inginkan dan bukan klon yang lebih lama.
sumber
Saya akhirnya melakukan pipa shell untuk mendapatkan apa yang saya inginkan. Saya baru saja menggabungkan cabang dari remote asal:
sumber
Jawaban yang diterima bekerja untuk saya. Tapi saya merasa lebih bermanfaat untuk memiliki komit diurutkan mulai dari yang terbaru.
git branch -r --sort=-committerdate
sumber