Слияние двух репозиториев Мерзавца

У меня есть один проект мерзавца с файловой структурой как это:

    Project_A/files...

У меня есть другой проект мерзавца с файловой структурой как это:

    Project_B/
        Project_A/files...
        files...

Теперь я хочу объединить Проект A в Проект B и продолжить использовать Проект B в качестве единственного репозитория.

Я пытался использовать слияние поддерева, но я получил ошибку при высказывании "Записи 'XXX' перекрытия 'XXX'"

Существует ли способ объединить Проект A в Проект B и сохранить все истории фиксации?

Заранее спасибо!

8
задан dirtytofu 10 February 2010 в 02:03
поделиться

2 ответа

Вы можете сделать что-то вроде этого:

В 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.

12
ответ дан 5 December 2019 в 12:58
поделиться

Если projectB уже содержит projectA в качестве субмодуля, вам следует:


Если projectA не был подмодулем projectB, я бы рекомендовал извлечь projectA в projectB репо, а затем использовать технику прививки для соединения двух линий фиксации вместе, не имея при этом дело со всеми конфликтами слияния, которые возникли бы при классическом слиянии.

См. вопрос Вопрос по Git: возможно ли слияние двух разных одинаковых репозиториев?

1
ответ дан 5 December 2019 в 12:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: