Git: Слияние двух репо с историей, имеющей конфликты

Имея проект с 133 коммитами в ноябре, я клонировал проект и создал новый репо до 50 коммитов, что означает:

A----B----C----D----E
          Cloned New Repo from C
           \__ C

Теперь в новом репо около 15-20 коммитов, но ни один коммит не передается старому репо, но при кодировании многих файлов и внутреннем изменении.

A----B----C----D----E
          Cloned New Repo from C
           \__ C----C1----C2---C3---C4

Теперь я хочу объединить эти два репо в одно:

A----B----C----D----E----C1----C2---C3---C4

После поиска в интернете получил несколько команд и попытался сделать слияние со следующим:

 git --git-dir=../<some directory>/.git|
    format-patch -k -15 --ignore-space-at-eol --stdout <commit SHA>|
    git am -k -3

Он дает конфликты с First commit и успешно разрешил его:

 git mergetool
 gm am --continue

показывает ошибку:

Did you hand edit your patch?
It does not apply to blobs recorded in its index.
Cannot fall back to three-way merge.
Patch failed at 0002 XXXXXXX
The copy of the patch that failed is found in:
   /xxxxxx/.git/rebase-apply/patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

Как решить эту проблему, если это возможно?

Любой другой способ решить эту проблему?

1 ответ

Решение

Я бы избегал подхода "я" - если у вас действительно общая история, вы должны воспользоваться перебазированием, слиянием или вишней.

Предположим, у вас есть ветвь в E, называемая "master".

Добавьте второй репозиторий как удаленный в первый репозиторий. Допустим, я назвал новую удаленную "песочницу".

получить - все

Теперь создайте новую локальную ветвь в песочнице /C4 . Допустим, ветвь называется "otherwork". Проверьте эту ветку и сделайте ребаз на вершине "master". Если у вас возникли проблемы при работе с какими-либо разрешениями, вы можете проверить мастер и выбрать изменения по одному из ветки 'Otherwork'.

Другие вопросы по тегам