Управление размером файла .git - PullRequest
10 голосов
/ 28 мая 2010

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

Ответы [ 4 ]

14 голосов
/ 28 мая 2010

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

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

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

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

2 голосов
/ 28 мая 2010

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

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

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

  • версия такого большого объекта в собственном репозитории Git, на который ссылаются как на подмодули
  • или версия их во внешнем репозитории, созданном для доставки, например, в репозитории Maven (т.е. "не в репозитории Git")
1 голос
/ 28 мая 2010

Я бы немного собрал мусор с git gc

1 голос
/ 28 мая 2010

Самый простой будет сделать

git clone --depth 1 your_old_repo

на новом месте и затем установите его обратно на место.

см. Также git faq

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...