Как сжать папку .git?

Папка .git разрослась до 5гб.
Хочу уменьшить ее размер, т.к. не могу клонировать нормально.
Делал:
git repack -a -d --depth=250 --window=250
git clean -d -f -i
git remote prune origin

Но это не принесло результата.
Как ее уменьшить? Или как удалять коммиты старше к примеру 30 дней? Возможно ли это?
  • Вопрос задан
  • 649 просмотров
Пригласить эксперта
Ответы на вопрос 5
saboteur_kiev
@saboteur_kiev
software engineer
1. git хранит всю историю. Но встроенный garbage collector может удалять коммиты, которые не привязаны ни к какой ветке. Поэтому для начала:
* Удалите ненужные бренчи.
* Выполнте "git gc --aggressive --prune" после удаления бренчей.

2. Затем нужно разобраться с тем, что у вас занимает место. Если вы напихали крупных файлов в ваш гит репо и они присутствуют в активном бренче, то никак их не удалить. Точнее можно попробовать удалить сами файлы вручную или при помощи bfg-repo-cleaner, но при этом надо синхронизировать это со всеми участниками. Если у вас гит репо локальный и никто им не пользуется, это проще. Но при этом вы ломаете коммиты - откатиться на них уже будет нельзя.

3. Наконец следует потратить вечерок и почитать про git-flow, или даже посмотреть 3-4 ютуб ролика от разных авторов которые показывают разные флоу работы с гитом. Там вы поймете почему и зачем люди пользуются rebase, squash, зачем удаляют ненужные ветки и содержат dev/master в хорошем состоянии, когда там нет промежуточных коммитов с commit message типа "апечатка" "забыл" "еще" и подобного мусора. И гит репо занимает минимальный объем.
Ответ написан
Комментировать
@deliro
Агрессивное программирование
Ответ написан
Комментировать
paran0id
@paran0id
Умный, но ленивый
Бинари поди храните? Или библиотеки-зависимости выкачиваете и по git add . добавляете каждый раз? Выясните, что жрёт место, настройте gitignore, почитайте про git lfs.
Ответ написан
Комментировать
MykolaPetiukh
@MykolaPetiukh
Директор кафе
Ответ написан
Комментировать
Griboks
@Griboks
Никак. Git придумали для других целей. Поэтому всё, что вы можете, - это удалить историй либо даже проще пересоздать репозиторий
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы