Управление .git размер файла

Мой .git файл вырастил к 229 МБ и я задающийся вопросом, какой лучший способ сократить размер. Я знаю о gc мерзавца и использовал его изрядное количество. Я не полностью уверен в том, как мерзавец работает, но я знаю, что существует упакованная информация там, что мне больше не нужно. Как, я знаю, что мне больше не нужны первые пять сохраненных ответвлений. Существует ли способ полностью стереть действительно старые ответвления или фиксации или что-то как этот?

10
задан DavidP6 28 May 2010 в 00:09
поделиться

4 ответа

Если вы хотите сохранить свою (достижимую) историю коммитов нетронутой, то истекайте, переупаковывайте, обрезайте и собирайте мусор:

git reflog expire --expire=0 --all
git repack -ad
git prune 
git gc

Это должен быть минимальный размер, до которого вы можете довести своё репо и сохранить свою историю коммитов.

Если нет, т.е. вы хотите или не против начать заново с текущим состоянием репо в качестве начального коммита, то подход Питера Тиллеманса подойдёт для этого.

14
ответ дан 3 December 2019 в 20:40
поделиться

Я бы сделал небольшую сборку мусора с помощью git gc

1
ответ дан 3 December 2019 в 20:40
поделиться

Проще всего было бы выполнить

git clone --depth 1 your_old_repo

в новом месте, а затем поменять его на место.

см. Также git faq

1
ответ дан 3 December 2019 в 20:40
поделиться

У вас есть некоторые приемы в « Уменьшить размер репозитория git », но я также упоминаю в нем, что только git gc может увеличить размер репо !

Таким образом, может потребоваться некоторая ветвь фильтра (также указанная в в этом вопросе ), если никто не извлекает данные из вашего репо.

Одним из факторов, который имеет тенденцию к быстрому увеличению размера репозитория Git, является управление версиями слишком большого количества двоичных файлов. Это одно из ограничений Git , поэтому попробуйте:

  • создать версию такого большого объекта в собственном репозитории Git, на который ссылаются как подмодули
  • , или версию их во внешнем репозитории, предназначенном для доставки, например Maven репозиторий (т.е. «не в репозитории Git»)
2
ответ дан 3 December 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: