Как перенести несколько репозиториев в моно-репо, сохраняя историю коммитов?
Я пытаюсь перенести несколько репозиториев Git в одно хранилище.
У меня есть два репозитория проекта, давайте назовем их project1
а также project2
, В моем монореполе я хочу иметь projects
каталог с двумя подкаталогами, project1
а также project2
, Каждый подкаталог должен содержать файлы из соответствующего проекта с сохранением истории Git.
Это возможно даже со стандартными командами Git?
Примечание: я посмотрел на Лерну - lerna import
делает именно то, что мне нужно, но, к сожалению, это работает только с проектами JS, и один из моих проектов - проект Ruby.
1 ответ
Да, вы можете использовать команды git для достижения.
Migarte два репо в монорепо в подпапку project1
а также project2
Вам необходимо переместить файлы в папку репозитория project1/project2, зафиксировать изменения и затем объединить их вместе. Подробные шаги, как показано ниже:
1. Переместите файлы в папки project1 и project2 отдельно
В первом репо (например, repo1
), переместите файлы в project1
папка, как показано ниже:
# In local repo1
mkdir project1
mv * project1
git add .
git command -m 'move files into project1 folder'
git push
Во втором репо (например, repo2
), переместите файлы в папку project2, как показано ниже:
# In local repo2
mkdir project2
mv * project2
git add .
git command -m 'move files into project2 folder'
git push
2. перенести два репо в momorepo
В любом локальном репо (например, в местном repo1
), выполните следующие команды:
# In local repo1
git remote add repo2 <URL for repo2> -f
git pull repo2 master --allow-unrelated-histories