Объединение двух хранилищ Git

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

    Project_A/files...

У меня есть еще один проект git с файловой структурой, подобной этой:

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

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

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

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

Спасибо заранее!

+8
источник поделиться
2 ответа

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

В Project_A создайте в него новый подкаталог Project_A и git 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
источник

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


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

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

+1
источник

Связанные вопросы


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

Посмотрите другие вопросы по метке или Задайте вопрос