Запустив rebase -i <upstream>
и отметив 100 коммитов как "сквош", в командной строке, которую предоставляет Git, у вас не должно возникнуть проблем.Git будет применять каждый патч один за другим, и в итоге вы получите один коммит, отражающий состояние репозитория при финальном коммите.Выбор «fixup» сделает то же самое, но отбросит сообщения промежуточной фиксации (что больше похоже на то, что вы ищете).
И если вы столкнетесь с непредвиденной проблемой во время перебазировки, простой git rebase --abort
восстановит ваш исходный репозиторий и историю версий.
Git очень экономит место, однако, если вы не хотите терять историю, вы можете попробовать запустить git gc
.Это запускает Git «служебные» задачи, такие как сжатие коммитов в «Packfiles».Если пользовательский контент не меняется значительно изо дня в день, тогда Git сможет сжать вашу историю очень сильно.git gc --aggressive
будет работать еще усерднее для сжатия ваших коммитов.