Я пытаюсь разделить большое репо на несколько меньших. Цель состоит в том, чтобы разделить папку и сохранить теги в процессе.
Я попытался:
git filter-branch --prune-empty --subdirectory-filter my-folder develop
Это правильно поместит my-folder
в корень нового проекта, и сохранилтеги. Однако проверка тега привела к просмотру всей старой структуры каталогов в новом репо.
Итак, я попытался:
git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter my-folder -- --branches=develop --tags
Это приводит к тому, что ветвь разработки находится там со старой структурой каталогов, НО когда я извлекаю тег, я вижу, что подкаталог правильно отфильтрован в корень! Таким образом, теги верны, но не ветвь разработки. По сути, у него есть проблема, противоположная первому методу.
Я не знаю, почему второй метод не сработал. Я был бы очень признателен за любые указатели!
РЕДАКТИРОВАТЬ:
Попытка это сейчас:
git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter my-folder -- --all
Был нерешительным, так как я ожидаю, что это займет немного больше времени. Это заняло больше времени, но в основном это сработало. Что не сработало? Более того, старые теги, в которых папка еще не была создана, были оставлены в репозитории и при извлечении содержали полную (очень) старую структуру каталогов. Я должен был grep и удалить все эти теги. Тем не менее, репо не так мало, как я ожидал ...