Вот что говорит создатель git Линус о том, как уменьшить размер репозитория git:
Эквивалент "git gc --aggressive" - но выполненный * правильно * - это сделать (за ночь) что-то вроде
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?