Git menjalankan pengumpulan sampah secara otomatis :
• Jika ada terlalu banyak objek longgar di repositori
• Ketika push ke repositori jarak jauh terjadi
• Setelah beberapa perintah yang mungkin memperkenalkan banyak objek longgar
• Ketika beberapa perintah seperti git reflog kedaluwarsa memintanya secara eksplisit
Dan akhirnya, pengumpulan sampah terjadi ketika Anda secara eksplisit memintanya menggunakan perintah git gc. Tetapi kapan itu seharusnya? Tidak ada jawaban yang kuat untuk pertanyaan ini, tetapi ada beberapa saran bagus dan praktik terbaik.
Anda harus mempertimbangkan menjalankan git gc secara manual dalam beberapa situasi:
• Jika Anda baru saja menyelesaikan cabang git filter. Ingatlah bahwa cabang-filter menulis ulang banyak komit, memperkenalkan yang baru, dan membiarkan yang lama pada ref yang harus dihapus ketika Anda puas dengan hasilnya. Semua benda mati (yang tidak lagi direferensikan karena Anda baru saja menghapus satu referensi yang menunjuk kepada mereka) harus dihapus melalui pengumpulan sampah.
• Setelah beberapa perintah yang mungkin memperkenalkan banyak objek longgar. Ini mungkin merupakan upaya rebase besar, misalnya.
Dan di sisi lain, kapan Anda harus waspada terhadap pengumpulan sampah?
• Jika ada wasit yatim yang mungkin ingin Anda pulihkan
• Dalam konteks git rerere dan Anda tidak perlu menyimpan resolusi selamanya
• Dalam konteks hanya tag dan cabang yang cukup untuk menyebabkan Git mempertahankan komit secara permanen
• Dalam konteks pengambilan FETCH_HEAD (pengambilan URL-direct via git fetch) karena mereka segera dikenai pengumpulan sampah