นี่คือสิ่งที่ผู้สร้าง git Linusพูดเกี่ยวกับวิธีลดขนาด repo คอมไพล์ของคุณ:
เทียบเท่ากับ "git gc --aggressive" - แต่ทำ * อย่างถูกต้อง * - คือทำ (ค้างคืน) อย่างเช่น
git repack -a -d --depth=250 --window=250
โดยที่ความลึกนั้นเกี่ยวกับว่าโซ่เดลต้าสามารถอยู่ได้ลึกเพียงใด (ทำให้มันยาวขึ้นสำหรับประวัติศาสตร์เก่า - มันคุ้มค่ากับพื้นที่เหนือศีรษะ) และหน้าต่างก็คือหน้าต่างออบเจ็กต์ขนาดใหญ่ที่เราต้องการให้ผู้สมัครเดลต้าแต่ละตัวสแกน
และที่นี่คุณอาจต้องการเพิ่มแฟล็ก "-f" (ซึ่งก็คือ "ปล่อยเดลต้าเก่าทั้งหมด" เนื่องจากตอนนี้คุณกำลังพยายามทำให้แน่ใจว่าอันนี้พบผู้สมัครที่ดีจริง
แหล่งที่มา: http://gcc.gnu.org/ml/gcc/2007-12/msg00165.html
สิ่งนี้จะกำจัดข้อมูลไบนารีที่ถูกละเลยใน repo ของฉันหรือไม่? "git repack" จะไม่ลบรูปภาพหรือข้อมูลไบนารีที่คุณตรวจสอบไว้ใน repo ของคุณแล้วลบออก ในการลบข้อมูลประเภทนั้นอย่างถาวรจาก repo ของคุณคุณต้องเขียนประวัติของคุณใหม่ ตัวอย่างทั่วไปคือเมื่อคุณเผลอเช็ครหัสผ่านในคอมไพล์ คุณสามารถย้อนกลับและลบไฟล์บางไฟล์ได้ แต่จากนั้นคุณต้องเขียนประวัติของคุณใหม่ตั้งแต่ตอนนั้นจนถึงตอนนี้จากนั้นบังคับให้ผลักดัน repo ใหม่ไปยังต้นทางของคุณ
git count-objects -v?