Мой .git файл вырастил к 229 МБ и я задающийся вопросом, какой лучший способ сократить размер. Я знаю о gc мерзавца и использовал его изрядное количество. Я не полностью уверен в том, как мерзавец работает, но я знаю, что существует упакованная информация там, что мне больше не нужно. Как, я знаю, что мне больше не нужны первые пять сохраненных ответвлений. Существует ли способ полностью стереть действительно старые ответвления или фиксации или что-то как этот?
Если вы хотите сохранить свою (достижимую) историю коммитов нетронутой, то истекайте, переупаковывайте, обрезайте и собирайте мусор:
git reflog expire --expire=0 --all
git repack -ad
git prune
git gc
Это должен быть минимальный размер, до которого вы можете довести своё репо и сохранить свою историю коммитов.
Если нет, т.е. вы хотите или не против начать заново с текущим состоянием репо в качестве начального коммита, то подход Питера Тиллеманса подойдёт для этого.
Проще всего было бы выполнить
git clone --depth 1 your_old_repo
в новом месте, а затем поменять его на место.
см. Также git faq
У вас есть некоторые приемы в « Уменьшить размер репозитория git », но я также упоминаю в нем, что только git gc
может увеличить размер репо !
Таким образом, может потребоваться некоторая ветвь фильтра (также указанная в в этом вопросе ), если никто не извлекает данные из вашего репо.
Одним из факторов, который имеет тенденцию к быстрому увеличению размера репозитория Git, является управление версиями слишком большого количества двоичных файлов. Это одно из ограничений Git , поэтому попробуйте: