Git เรียกใช้การรวบรวมขยะโดยอัตโนมัติ :
•หากมีวัตถุหลวมมากเกินไปในพื้นที่เก็บข้อมูล
•เมื่อมีการผลักดันไปยังพื้นที่เก็บข้อมูลระยะไกลเกิดขึ้น
•หลังจากคำสั่งบางอย่างที่อาจแนะนำวัตถุที่หลวมหลาย ๆ
•เมื่อบางคำสั่งเช่น git reflog หมดอายุขออย่างชัดเจน
และสุดท้ายการรวบรวมขยะเกิดขึ้นเมื่อคุณร้องขออย่างชัดเจนโดยใช้คำสั่ง git gc แต่เมื่อไร ไม่มีคำตอบที่ชัดเจนสำหรับคำถามนี้ แต่มีคำแนะนำและแนวทางปฏิบัติที่ดี
คุณควรพิจารณาใช้ git gc ด้วยตนเองในบางสถานการณ์:
•หากคุณเพิ่งกรอก git filter-branch จำได้ว่าสาขาตัวกรองเขียนหลายคอมมิตแนะนำใหม่และทิ้งอันเก่าไว้ในการอ้างอิงที่ควรลบออกเมื่อคุณพอใจกับผลลัพธ์ วัตถุที่ตายแล้วทั้งหมด (ที่ไม่ได้ถูกอ้างอิงอีกต่อไปเนื่องจากคุณเพิ่งลบผู้อ้างอิงที่ชี้ไปที่พวกเขาออก) ควรถูกลบออกโดยการรวบรวมขยะ
•หลังจากคำสั่งบางอย่างที่อาจแนะนำวัตถุที่หลวมหลาย ๆ นี่อาจเป็นความพยายามในการรีบูตครั้งใหญ่
และในทางกลับกันคุณควรระวังการเก็บขยะหรือไม่
•หากมีผู้อ้างอิงเด็กกำพร้าที่คุณอาจต้องการกู้คืน
•ในบริบทของ git rerere และคุณไม่จำเป็นต้องบันทึกความละเอียดตลอดไป
•ในบริบทของแท็กและกิ่งไม้เท่านั้นที่เพียงพอที่จะทำให้ Git รักษาความมุ่งมั่นอย่างถาวร
•ในบริบทของการดึงข้อมูล FETCH_HEAD (การดึง URL โดยตรงผ่านการเรียก git) เนื่องจากอยู่ภายใต้การรวบรวมขยะทันที