2014-10-08 2 views
1

У меня есть репозиторий git, размер источника которого составляет всего 1 МБ, но папка с 300 мегабайтами .git. В нем 10000+.Как уменьшить размер git (удалив локальные старые коммиты)?

Я хотел бы сохранить мой локальный репозиторий небольшим, сохранив только несколько новых коммитов на местном уровне, как я могу это сделать.

+3

Помогает ли git gc? Удаление старых коммитов полностью противоречит духу git. Обычно вы хотите, чтобы вся история была локально. Почему у вас есть 10000 коммитов в таком небольшом репо, в первую очередь? Во всяком случае, вы можете создать неглубокий клон, используя 'git clone --depth N', который будет иметь только N последней фиксации в клоне. – ThiefMaster

+0

Я пробовал, не очень помог. Но 'git clone --depth N' помогает. – Sato

ответ

0

Версии Git до 1.9 не особенно хороши в отношении того, как они относятся к мелким клонам. Если вы идете по этому маршруту, убедитесь, что используете последнюю версию git.

Обычно коммиты очень маленькие, и даже 10 000 совершений не должны есть много места. Однако капли, на которые они указывают, могут.

Предположив вы не можете навсегда изменить историю

Попробуйте агрессивный репака сжимать объекты.

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

Использование общего хранилища объектов, если это является жизнеспособным для вашей ситуации с помощью .git/objects/info/alternates

Если те не работают и история фиксирована, то попробуйте мелкий клон с git clone --depth. Не забудьте прочитать страницу справки клонирования и понять, что вы делаете.

Смежные вопросы