Inilah yang dikatakan pencipta git Linus tentang cara mengecilkan git repo Anda:
Setara dengan "git gc --aggressive" - tetapi dilakukan * dengan benar * - adalah melakukan sesuatu (semalam) seperti
git repack -a -d --depth=250 --window=250
di mana hal kedalaman itu hanya tentang seberapa dalam rantai delta dapat (membuat mereka lebih lama untuk sejarah lama - itu sepadan dengan ruang overhead), dan hal jendela adalah tentang seberapa besar jendela objek yang kita inginkan setiap kandidat delta untuk memindai.
Dan di sini, Anda mungkin ingin menambahkan bendera "-f" (yang merupakan "jatuhkan semua delta lama", karena Anda sekarang benar-benar berusaha memastikan bahwa yang ini benar-benar menemukan kandidat yang baik.
sumber: http://gcc.gnu.org/ml/gcc/2007-12/msg00165.html
Apakah ini akan menghilangkan data biner yang menjadi yatim di repo saya? "git repack" tidak akan menghapus gambar atau data biner yang telah Anda periksa di repo Anda dan kemudian menghapusnya. Untuk menghapus data semacam itu secara permanen dari repo Anda, Anda harus menulis ulang riwayat Anda. Contoh umum dari hal itu adalah ketika Anda secara tidak sengaja memeriksa kata sandi Anda di git. Anda dapat kembali dan menghapus beberapa file tetapi kemudian Anda harus menulis ulang riwayat Anda dari saat itu hingga sekarang dan kemudian memaksakan dorongan lalu repo baru ke tempat asal Anda.
git count-objects -v?