Pendeknya;
- Bagaimana cara menghapus remote beberapa remote gabungan?
Lebih banyak latar belakang;
Saya memiliki git repo dengan puluhan remote yang telah digabungkan menjadi master. Saya dapat menghapus remote ini satu per satu dengan menggunakan:
git push --delete origin myBranch-1234
Namun ini adalah proses yang lambat dan membosankan untuk semua remote. Jadi saya mencoba perintah ini:
git branch -r --merged | grep origin | grep -v master | xargs git push origin --delete
git branch -r --merged
mencantumkan semua remote yang digabungkan.
grep origin
memberi tahu perintah untuk menyertakan asal.
grep -v master
memberi tahu perintah untuk mengecualikan master.
xargs git push origin --delete
memberi tahu perintah untuk menghapus daftar remote.
Secara keseluruhan, saya berharap ini mengumpulkan semua remote yang digabungkan dan menghapusnya.
Ketika saya menjalankan perintah di atas, saya menerima yang berikut untuk setiap remote yang digabungkan;
error: unable to delete 'origin/myBranch-1234': remote ref does not exist
error: unable to delete 'origin/myBranch-1235': remote ref does not exist
error: unable to delete 'origin/myBranch-1236': remote ref does not exist
error: unable to delete 'origin/myBranch-1237': remote ref does not exist
... etc
Namun remote ini memang ada dan saya dapat melakukan pembayaran masing-masing. Banyak situs dan orang merekomendasikan agar saya menjalankan git fetch --prune
untuk membersihkan referensi yang hilang. Ini tidak melakukan apa-apa karena semua remote ini ada.
Jadi saya meminta Anda, pertukaran tumpukan sayang;
- Mengapa saya dapat menghapus satu remote, tapi tidak banyak?
- Apakah perintah saya benar?
Saya pikir saya kehilangan sesuatu yang kecil. Setiap kali saya meneliti ini, sepertinya saya melakukan ini dengan benar, tetapi saya mendapatkan kesalahan di atas.
--prune
? Menurut pendapat saya itu cukup menyesatkan