У меня есть один проект мерзавца с файловой структурой как это:
Project_A/files...
У меня есть другой проект мерзавца с файловой структурой как это:
Project_B/
Project_A/files...
files...
Теперь я хочу объединить Проект A в Проект B и продолжить использовать Проект B в качестве единственного репозитория.
Я пытался использовать слияние поддерева, но я получил ошибку при высказывании "Записи 'XXX' перекрытия 'XXX'"
Существует ли способ объединить Проект A в Проект B и сохранить все истории фиксации?
Заранее спасибо!
Вы можете сделать что-то вроде этого:
В Project_A создайте новый подкаталог Project_A и введите в него все mv, так что Project_A теперь выглядит как
Project_A/
Project_A/files...
Затем в Project_B:
git remote add project_A Project_A
git fetch project_A
git branch project_A project_A/master
git checkout -b merge_trial master
git merge project_A
... и исправьте, если необходимо, на merge_trial (или вспеньте, промойте, повторите, пока не получите желаемое в отношении конфликтов / перекрытий).
Я действительно сделал нечто подобное в рамках миграции svn-> git.
Если projectB
уже содержит projectA
в качестве субмодуля, вам следует:
projectA
как подмодуль к projectB
Если projectA
не был подмодулем projectB
, я бы рекомендовал извлечь projectA
в projectB
репо, а затем использовать технику прививки для соединения двух линий фиксации вместе, не имея при этом дело со всеми конфликтами слияния, которые возникли бы при классическом слиянии.
См. вопрос Вопрос по Git: возможно ли слияние двух разных одинаковых репозиториев?