Kapan Git menyegarkan daftar cabang jarak jauh?

496

Menggunakan git branch --allmenunjukkan semua cabang jauh dan lokal . Kapan Git menyegarkan daftar ini?

Saat menarik / mendorong? Dan bagaimana cara menyegarkannya menggunakan Git Bash ?

BendEg
sumber
5
Sebagai catatan, git ls-remotemungkin menarik di sini.
jthill

Jawaban:

1221

Untuk memperbarui daftar cabang jarak jauh lokal:

git remote update origin --prune

Untuk menampilkan semua cabang lokal dan jauh yang diketahui (lokal) Git

git branch -a
centralcmd
sumber
143
git remote update origin --pruneadalah apa yang saya cari thx
WonderLand
6
Tentang perbedaan antara jawaban ini, yang menggunakan git remote update, dan jawaban yang diterima, yang menggunakan git fetch, lihat di sini
The Red Pea
6
ini jawaban yang benar. git fetchtidak menghapus cache lokal saya dari cabang jauh. Hanya --prunemampu membersihkan semuanya.
Felipe Alvarez
23
Anda dapat meminta git melakukan ini secara otomatis dengangit config remote.origin.prune true
kjhf
8
git remote prune originmemiliki efek yang sama dan Anda mengetik lebih sedikit.
Dvin
27

Saya percaya bahwa jika Anda lari git branch --all dari Bash bahwa daftar cabang jauh dan lokal yang Anda lihat akan mencerminkan apa yang "tahu" Git lokal Anda pada saat Anda menjalankan perintah. Karena Git Anda selalu mutakhir sehubungan dengan cabang lokal di sistem Anda, daftar cabang lokal akan selalu akurat.

Namun, untuk cabang jarak jauh hal ini tidak perlu terjadi. Git lokal Anda hanya tahu tentang cabang jarak jauh yang telah dilihatnya pada pengambilan terakhir (atau tarik). Jadi mungkin saja Anda menjalankan git branch --alldan tidak melihat cabang jarak jauh baru yang muncul setelah terakhir kali Anda mengambil atau menarik.

Untuk memastikan bahwa Anda lokal daftar cabang dan jarak jauh Anda mutakhir, Anda dapat melakukan git fetch sebelum menjalankangit branch --all .

Untuk informasi lebih lanjut, cabang "jarak jauh" yang muncul ketika Anda menjalankan git branch --alltidak terlalu jauh sama sekali; mereka sebenarnya lokal. Sebagai contoh, misalkan ada cabang pada remote yang dipanggil featureyang telah Anda tarik setidaknya satu kali ke Git lokal Anda. Anda akan melihat origin/featureterdaftar sebagai cabang saat Anda menjalankan git branch --all. Tetapi cabang ini sebenarnya adalah cabang Git lokal . Ketika Anda melakukannya git fetch origin, cabang pelacakan ini akan diperbarui dengan perubahan baru dari jarak jauh. Inilah sebabnya negara lokal Anda dapat basi, karena mungkin ada cabang terpencil baru, atau cabang pelacakan Anda menjadi basi.

Tim Biegeleisen
sumber
4
Ya, git fetchberhasil.
BendEg
14
Catatan untuk downvoters: Jika Anda merasakan informasi yang benar dengan penjelasan yang bermaksud baik layak untuk downvote, maka setidaknya angkat bicara dan tinggalkan komentar.
Tim Biegeleisen
3
git fetchtidak bekerja untuk saya, perlu ditambahkan --prune. Btw, saya bukan downvoter;)
Deqing
3
git fetchtidak menghapus cabang jarak jauh yang dihapus. Mungkin itulah sebabnya beberapa orang
menurunkan suara
@ JérômeMEVEL Adalah suatu keajaiban bagi saya bahwa jawaban yang diterima sekarang memiliki 1000 upvotes. Itu gila ... berharap aku punya eksposur semacam itu :-)
Tim Biegeleisen
24

OP tidak meminta pembersihan untuk semua remote, melainkan untuk semua cabang remote default.

Begitu git fetch --prune juga yang harus digunakan.

Pengaturan git config remote.origin.prune truemembuat --pruneotomatis. Dalam hal ini hanya git fetchakan memangkas cabang jauh basi dari salinan lokal. Lihat juga Pemangkasan otomatis dengan Git ambil atau tarik .

Perhatikan bahwa ini tidak membersihkan cabang lokal yang tidak lagi melacak cabang jarak jauh. Lihat Cara memangkas cabang pelacakan lokal yang tidak ada pada jarak jauh lagi untuk itu.

Oliver
sumber
Untuk membuatnya sedikit lebih pendekgit fetch -p
Michael Warner
2

Gunakan git fetchuntuk mengambil semua cabang yang dibuat terbaru.

ay
sumber
1
git fetchtidak mengubah apa pun untuk saya dengan git 2.17.1. Versi dan opsi apa yang telah Anda gunakan?
PointedEars
2
Anda perlu --pruneatau git config remote.NAME.prune trueuntuk ini untuk menyelesaikan pertanyaan OP
Oliver
-1

Jika Anda menggunakan Eclipse dan ingin melihat cabang baru dari hulu;

Dalam perspektif Git, klik kanan pada repositori Git dan kemudian pilih "Ambil dari Hulu". Ini mengambil cabang jarak jauh baru.

Selman Gun
sumber
-8

Jika Anda menggunakan Eclipse,

  1. Buka "Git Repositori"
  2. Temukan Repositori Anda.
  3. Buka "Cabang" lalu "Pelacakan Jarak Jauh".

Git

Mereka semua harus ada di sana. Klik kanan dan "checkout."

markthegrea
sumber
Bagaimana ini menjawab pertanyaan? - "Kapan Git menyegarkan daftar cabang jarak jauh?"
Peter Mortensen
Ketika saya ingin menyegarkan cabang-cabang lokal saya di gerhana, saya mencari di Google dan membawa saya ke sini. Posting ini sebenarnya telah membantu beberapa orang karena telah mengalami beberapa peningkatan. Mungkin saya salah paham pertanyaannya. Bagi saya, Eclipse IS Git (antarmuka untuk itu). Maaf telah menyinggung semua orang!
markthegrea