как уменьшить.папки в Git
моя текущая база имеет общий размер ок. 200МБ.
но мой .папка git имеет удивительный размер 5 ГБ (!). поскольку я толкаю свою работу на внешний сервер, мне не нужна большая локальная история...
Как я могу уменьшить .git папка, чтобы освободить место на моем ноутбуке? Я могу удалить все изменения, которые старше, чем 30 дней?
большое спасибо за любую помощь:)
5 ответов:
вы не должны удалять все изменения старше 30 дней (я думаю, что это как-то можно использовать git, но на самом деле не рекомендуется).
можно назвать
git gc --aggressive --prune, который будет выполнять сбор мусора в вашем репозитории и подрезать старые объекты. у вас есть много двоичных файлов (архивы, изображения, исполняемые файлы), которые часто меняются? те, как правило, приводят к огромным .папки git (помните, что Git хранит снимки для каждой ревизии и двоичные файлы сжимаются плохо)
С Лайнус:
эквивалент "git gc -- aggressive" - но сделано * правильно* - это сделайте (на ночь) что-то вроде
git repack -a -d --depth=250 --window=250где эта глубина-это то, насколько глубоко могут быть Дельта-цепи (сделайте их длиннее для старой истории - это стоит пространства над головой), и дело в том, насколько большое окно объекта мы хотим, чтобы каждая Дельта кандидат для сканирования.
и здесь, вы вполне можете добавить флаг"- f " (который является "отбросить все старые дельты", так как вы сейчас на самом деле хочу убедиться, что это один на самом деле находит хороших кандидатов.
Я пробовал их, но мой репозиторий был все еще очень большим. Проблема была в том, что я случайно проверил некоторые сгенерированные большие файлы. После некоторого поиска я нашел отличный учебник, который позволяет легко удалять большие сгенерированные файлы. Этот учебник позволил мне сократить мой репозиторий с 60 МБ до
5GB против 200MB немного странно. Попробуйте запустить
git gc.но нет, если вы не разделите свой репозиторий на модули, вы не можете уменьшить размер
Я использую git больше как механизм синхронизации, чем для истории версий. Поэтому мое решение этой проблемы состояло в том, чтобы убедиться, что все мои текущие источники находятся в удовлетворительном состоянии, а затем просто удалить .git и повторно инициализировать репозитории. Проблема дискового пространства решена. :- ) История ушла :-( Я делаю это, потому что мое РЕПО находится на маленьком USB-ключе. Я не хочу, или нужно всю свою историю. Если бы у меня был метод просто усечения истории, я бы использовал его.
Если бы я был заинтересован в сохраняя свою историю, я бы архивировал текущий репозиторий. В какой-то момент позже я мог бы клонировать исходный репозиторий, скопировать все изменения из новое РЕПО (предположим, что я не сделал много (любого) переименования или удаления). А потом сделать один большая фиксация, которая будет представлять все изменения, внесенные в новое РЕПО, как одну фиксацию в старое РЕПО. Можно ли объединить истории? Может быть, если бы я использовал ветку, а затем удалил объекты, которые мне не нужны. (Я не знаю достаточно о git внутренние органы, чтобы начать так дурачиться).
Comments