Jika cabang yang dihapus masih muncul di Git pada Mac Anda, lakukan pemangkasan (prune) referensi pelacakan jarak jauh (remote-tracking) dari repositori lokal Anda. Buka Terminal, pindah ke folder repositori, periksa remote mana yang ingin Anda segarkan, lalu jalankan git fetch --prune origin. Ini memperbarui referensi yang diambil dan menghapus referensi usang yang terkait dengan origin; ini tidak menghapus cabang dari server jarak jauh atau menghapus cabang lokal Anda. Dokumentasi git fetch Git
Apa yang disegarkan saat Anda melakukan prune?
Remote-tracking branch adalah rekaman lokal Anda atas sebuah cabang di repositori jarak jauh. Misalnya, origin/feature-x mewakili status terakhir yang diambil dari cabang jarak jauh tersebut. Ini terpisah dari cabang lokal bernama feature-x. Jika cabang jarak jauh dihapus, referensi lokal Anda mungkin tetap ada sampai Git memangkasnya (prune). Pemetaan fetch bawaan Git umumnya menyimpan cabang jarak jauh di bawah refs/remotes/origin/, meskipun repositori dapat menggunakan pemetaan yang berbeda. Git mendokumentasikan bagaimana konfigurasi refspec fetch memetakan cabang jarak jauh.
Pruning membandingkan referensi remote saat ini dengan referensi lokal yang dicakup oleh konfigurasi fetch remote tersebut, kemudian menghapus referensi yang sudah tidak ada lagi di remote. Tindakan ini membersihkan tampilan lokal Anda; ini bukan perintah untuk menghapus cabang di remote. Hal ini dapat membuat perintah seperti git branch --all lebih mudah dibaca ketika repositori telah menumpuk referensi cabang lama. Panduan pruning Git
Menyegarkan referensi dari Terminal
Apple mendokumentasikan zsh sebagai shell bawaan di Terminal pada Mac, meskipun Mac atau lingkungan yang dikelola dapat dikonfigurasi secara berbeda. Perintah Git di bawah ini berfungsi dalam pengaturan Terminal macOS pada umumnya. Petunjuk Pengguna Terminal Apple
- Buka Terminal dan masuk ke folder repositori. Jika Anda mengetahui jalurnya, gunakan tanda kutip jika jalurnya mengandung spasi, misalnya:
cd "/Users/sam/Projects/Client App"
Ganti jalur contoh tersebut dengan jalur sebenarnya dari repositori Anda. Jika Anda tidak yakin di mana Anda berada, pwd akan mencetak direktori saat ini. Jalankan perintah Git dari dalam repositori.
- Konfirmasikan repositori dan nama remote:
git status --short --branch
git remote -v
git remote -v mencantumkan nama remote dan URL yang telah dikonfigurasi. origin adalah yang umum digunakan, tetapi gunakan nama yang ditampilkan untuk server yang referensinya ingin Anda segarkan. Jika repositori memiliki beberapa remote, pangkas hanya remote yang dituju.
- Pratinjau referensi yang usang sebelum menghapusnya:
git remote prune --dry-run origin
Git akan melaporkan referensi mana yang akan dipangkas tanpa benar-benar menghapusnya. Opsi dry-run ini milik git remote prune; opsi ini tidak mengambil (fetch) tip cabang baru. Dokumentasi git remote Git
- Jika pratinjau sesuai dengan yang Anda harapkan, segarkan dan pangkas dalam satu langkah:
git fetch --prune origin
Perintah ini akan mengambil (fetch) data sesuai dengan refspec remote yang dikonfigurasi dan menghapus referensi usang yang dicakup oleh pemetaan tersebut. Output fetch Git akan menandai referensi yang dipangkas dengan tanda -. Untuk memangkas tanpa mengambil pembaruan, gunakan git remote prune origin sebagai gantinya. Git mendokumentasikan kedua metode langsung ini.
- Periksa hasilnya:
git branch --remotes
git branch --all
Daftar khusus remote menampilkan remote-tracking branch; daftar semua cabang mencakup remote-tracking branch dan cabang lokal. Cabang yang tidak ada dalam daftar remote mungkin masih ada sebagai cabang lokal, dan pruning tidak menghapusnya.
Jika referensi usang tetap ada
Pertama, pastikan Anda menggunakan nama remote yang benar. Kemudian pertimbangkan konfigurasi fetch repositori tersebut: remote dapat diatur untuk hanya melacak cabang-cabang tertentu, dan refspec khusus dapat mengubah referensi mana yang dipengaruhi oleh fetch dan prune. Periksa pemetaan tersebut dengan git config --get-all remote.origin.fetch, ganti origin jika perlu. Jika remote dikonfigurasi untuk hanya melacak subset tertentu, cabang di luar subset tersebut mungkin tidak berfungsi sebagaimana mestinya di bawah fetch bawaan. Git menjelaskan refspec fetch dan efeknya terhadap pruning.
Jika perintah melaporkan kesalahan jaringan atau autentikasi, Git tidak dapat menyelesaikan pengambilan (fetch) jarak jauh; selesaikan masalah koneksi atau akses tersebut dan coba lagi. Hindari menambahkan --prune-tags kecuali Anda secara khusus ingin pemangkasan juga diterapkan pada tag: Git memperingatkan bahwa refspec tag yang eksplisit dapat menyebabkan tag lokal yang hilang dari remote tersebut ikut terhapus. Dokumentasi pruning Git menjelaskan peringatan tentang tag ini.
Gunakan git fetch --prune origin jika Anda menginginkan informasi remote-tracking terkini sekaligus pembersihan secara bersamaan. Gunakan git remote prune --dry-run origin terlebih dahulu jika Anda ingin meninjau kandidat yang akan dihapus, atau git remote prune origin jika Anda ingin pembersihan tanpa mengambil pembaruan cabang.
Sumber
Mengubah shell default di Terminal di Mac — Apple Support