В зависимости от того, как организовано ваше репо, вы можете использовать git filter-branch
для создания нового репо для каждого проекта, сохраняя историю для каждого отдельного проекта только .
Предполагая ваше текущее репоСтруктура выглядит следующим образом:
repo/
project1/
project1-file
project2/
project2-file
project3/
project3-file
Вы можете сначала клонировать репо (git filter-branch
удалит файлы и их историю, поэтомуклонируйте свое оригинальное репо сначала ).Затем в своем клонированном репо вы можете использовать git filter-branch
для создания нового репо (со всей старой историей) в корне project1
:
$ git filter-branch --subdirectory-filter project1 HEAD
Теперь ваше репо будет выглядеть какследующее:
repo/
project1-file
И он по-прежнему будет содержать историю всех файлов, которые были сохранены в project1/
в старом репо.
Повторите этот шаг для каждого проекта, и теперь вы будетеиметь три независимых репозитория со всей историей соответствующих проектов.