Я хочу разделить большой 10-летний репозиторий на несколько меньших, используя команду 'git filter-branch --subdirectory-filter'. Проблема в том, что после выполнения шагов, описанных в документации, мой чистый репозиторий все еще содержит коммиты с файлами и папками, которые не соответствуют выражению фильтра.
Что я делаю не так?
Шаги для воспроизведения:
- Клонировать репозиторий в новую папку:
мерзавец клон https://gitlab.com/MyRepo.git
- Запустите команду git filter-branch --subdirectory-filter, чтобы удалить все из всех тегов и веток и сохранить только одну конкретную папку:
git filter-branch --subdirectory-filter Путь / К / Папка --prune-empty --tag-name-filter cat - --all
Примечание: я получаю предупреждения "ПРЕДУПРЕЖДЕНИЕ: Ref 'refs / tags / MyTag' is неизменен" для некоторых тегов.
- Клонировать репозиторий в другую папку:
git clone file: /// MyRepo MyRepoClean
- Проверьте размер хранилища и найдите большие файлы в хранилище, используя это решение.
Результат:
Версия HEAD «чистого» репозитория содержит только файлы, которые изначально находились в папке Path / To / Folder. Однако история содержит файлы и папки из других папок.
Примечания:
- Хранилище содержит много тегов.