У меня очень большой репозиторий Subversion (> 200 000 коммитов), который мы недавно перешли на git.
В течение многих лет многие люди допускали крошечные ошибки, такие как добавление пакетов iso или msi, добавление папок, которые не должны были быть добавлены и т. Д. Мы очистили это, удалив файлы / папки и подтвердили.Хранилище росло, но это не было проблемой, так как SVN делал хорошие редкие проверки.
Теперь на git клиенту нужно вытащить всю историю, а локальный клон теперь составляет около 50 ГБ.Время для некоторой уборки ...
Есть ли способ удалить все файлы из истории, которые были удалены в прошлом?Или создать новый репозиторий и переместить все те файлы, которые существуют в последнем коммите?
Я работал с командой git filter-branch
, которая помогла.Но только для тех файлов, для которых я знаю путь.Я также использовал git log --diff-filter=D --summary
, чтобы получить список всех удалений, но их тысячи…
ОК, в конце концов, я могу просто запустить новый репозиторий и скопировать в него последние файлы.Тогда я потеряю историю, но могу сохранить исходное большое репо в качестве архивного репо для просмотра истории при необходимости.
Я действительно надеюсь, что есть лучшие подходы ...