Ось що повинен сказати творець git Лінуса про те, як зменшити своє git repo:
Еквівалент "git gc - агресивний" - але зроблено * належним чином * - це робити (за ніч) щось на кшталт
git repack -a -d --depth=250 --window=250
де ця глибина полягає лише в тому, наскільки глибокими можуть бути ланцюги дельти (зробіть їх довшими для старої історії - це коштує місця над головою), а річ у вікні - про те, наскільки велике вікно об'єкта ми хочемо сканувати кожному кандидату дельти.
І тут, можливо, ви хочете додати прапор "-f" (це "скинути всі старі дельти", оскільки ви зараз насправді намагаєтеся переконатися, що цей справді знаходить хороших кандидатів).
джерело: http://gcc.gnu.org/ml/gcc/2007-12/msg00165.html
Чи позбудуться цього бінарні дані, осиротілі в моїй репо? "git repack" не позбудеться зображень або бінарних даних, які ви зареєстрували у своїй репо-репортації, а потім видалили їх. Щоб назавжди видалити такі дані з репо, вам доведеться переписати свою історію. Поширений приклад - коли ви випадково перевіряєте свої паролі в git. Ви можете повернутися назад і видалити деякі файли, але тоді вам доведеться переписувати історію відтоді до цього, а потім примушувати натискати нове репо до свого походження.
git count-objects -v?