Saat Anda menggunakannya git push origin :staleStuff
, secara otomatis menghapus origin/staleStuff
, jadi saat Anda menjalankan git remote prune origin
, Anda telah memangkas beberapa cabang yang telah dihapus oleh orang lain. Kemungkinan besar rekan kerja Anda sekarang perlu lari git prune
untuk menyingkirkan cabang yang telah Anda hapus.
Jadi apa sebenarnya yang git remote prune
dilakukannya? Ide utama: cabang lokal (bukan cabang pelacakan) tidak tersentuh oleh git remote prune
perintah dan harus dihapus secara manual.
Sekarang, contoh dunia nyata untuk pemahaman yang lebih baik:
Anda memiliki repositori jarak jauh dengan 2 cabang: master
dan feature
. Anggaplah Anda sedang mengerjakan kedua cabang, sehingga Anda memiliki referensi ini di repositori lokal Anda (nama referensi lengkap diberikan untuk menghindari kebingungan):
refs/heads/master
(nama pendek master
)
refs/heads/feature
(nama pendek feature
)
refs/remotes/origin/master
(nama pendek origin/master
)
refs/remotes/origin/feature
(nama pendek origin/feature
)
Sekarang, skenario tipikal:
- Beberapa pengembang lain menyelesaikan semua pekerjaan
feature
, menggabungkannya ke master
dan menghapus feature
cabang dari repositori jarak jauh.
- Secara default, ketika Anda melakukan
git fetch
(atau git pull
), tidak ada referensi yang dihapus dari repositori lokal Anda, jadi Anda masih memiliki semua 4 referensi tersebut.
- Anda memutuskan untuk membersihkannya, dan lari
git remote prune origin
.
- git mendeteksi bahwa
feature
cabang tidak ada lagi, sehingga refs/remotes/origin/feature
adalah basi cabang yang harus dihapus.
- Sekarang Anda memiliki 3 referensi, termasuk
refs/heads/feature
, karena git remote prune
tidak menghapus refs/heads/*
referensi apa pun .
Anda dapat mengidentifikasi cabang lokal, yang terkait dengan cabang pelacakan jarak jauh, dengan branch.<branch_name>.merge
parameter konfigurasi. Parameter ini tidak benar-benar diperlukan agar apa pun berfungsi (mungkin kecuali git pull
), jadi mungkin saja hilang.
(diperbarui dengan contoh & info berguna dari komentar)
git remote show origin
dan mencari cabang yang bertandastale