как уменьшить.папки в Git



моя текущая база имеет общий размер ок. 200МБ.



но мой .папка git имеет удивительный размер 5 ГБ (!). поскольку я толкаю свою работу на внешний сервер, мне не нужна большая локальная история...



Как я могу уменьшить .git папка, чтобы освободить место на моем ноутбуке? Я могу удалить все изменения, которые старше, чем 30 дней?



большое спасибо за любую помощь:)

506   5  

5 ответов:

вы не должны удалять все изменения старше 30 дней (я думаю, что это как-то можно использовать git, но на самом деле не рекомендуется).

можно назвать git gc --aggressive --prune, который будет выполнять сбор мусора в вашем репозитории и подрезать старые объекты. у вас есть много двоичных файлов (архивы, изображения, исполняемые файлы), которые часто меняются? те, как правило, приводят к огромным .папки git (помните, что Git хранит снимки для каждой ревизии и двоичные файлы сжимаются плохо)

С Лайнус:

эквивалент "git gc -- aggressive" - но сделано * правильно* - это сделайте (на ночь) что-то вроде

   git repack -a -d --depth=250 --window=250

где эта глубина-это то, насколько глубоко могут быть Дельта-цепи (сделайте их длиннее для старой истории - это стоит пространства над головой), и дело в том, насколько большое окно объекта мы хотим, чтобы каждая Дельта кандидат для сканирования.

и здесь, вы вполне можете добавить флаг"- f " (который является "отбросить все старые дельты", так как вы сейчас на самом деле хочу убедиться, что это один на самом деле находит хороших кандидатов.

источник: http://gcc.gnu.org/ml/gcc/2007-12/msg00165.html

Я пробовал их, но мой репозиторий был все еще очень большим. Проблема была в том, что я случайно проверил некоторые сгенерированные большие файлы. После некоторого поиска я нашел отличный учебник, который позволяет легко удалять большие сгенерированные файлы. Этот учебник позволил мне сократить мой репозиторий с 60 МБ до

http://stevelorek.com/how-to-shrink-a-git-repository.html

5GB против 200MB немного странно. Попробуйте запустить git gc.

но нет, если вы не разделите свой репозиторий на модули, вы не можете уменьшить размер

Я использую git больше как механизм синхронизации, чем для истории версий. Поэтому мое решение этой проблемы состояло в том, чтобы убедиться, что все мои текущие источники находятся в удовлетворительном состоянии, а затем просто удалить .git и повторно инициализировать репозитории. Проблема дискового пространства решена. :- ) История ушла :-( Я делаю это, потому что мое РЕПО находится на маленьком USB-ключе. Я не хочу, или нужно всю свою историю. Если бы у меня был метод просто усечения истории, я бы использовал его.

Если бы я был заинтересован в сохраняя свою историю, я бы архивировал текущий репозиторий. В какой-то момент позже я мог бы клонировать исходный репозиторий, скопировать все изменения из новое РЕПО (предположим, что я не сделал много (любого) переименования или удаления). А потом сделать один большая фиксация, которая будет представлять все изменения, внесенные в новое РЕПО, как одну фиксацию в старое РЕПО. Можно ли объединить истории? Может быть, если бы я использовал ветку, а затем удалил объекты, которые мне не нужны. (Я не знаю достаточно о git внутренние органы, чтобы начать так дурачиться).

Comments

    Ничего не найдено.