git merge: удаленное хранилище существует в подкаталоге - PullRequest
2 голосов
/ 03 сентября 2010

Я пытаюсь преобразовать старый репозиторий CVS, отслеживающий ветку поставщика, в git, и столкнулся с проблемой слияния.

Хранилище структурировано так:

dir1/
dir2/

dir2 поступает из восходящей ветви.Апстрим уже конвертирован в git, и dir2 в нашем репо является корнем их git репо.Я хочу добавить их в качестве удаленного и объединить их корень в подкаталог dir2.

Простое объединение не будет работать: git рассматривает их корень как наш корень и не находит общих файлов.

Слияние поддеревьев не будет работать: вы не можете объединить поддерево в существующий каталог.Я следовал руководству Как использовать стратегию слияния поддерева , и эта команда не работает:

git read-tree --prefix=dir2/ -u upstream/master

Проблема в том, что он обнаруживает «конфликтующие» файлы, которые уже существуют в dir2.Я знаю, что файлы существуют, я хочу, чтобы они объединили эти файлы.

Буду признателен за любой совет.

1 Ответ

2 голосов
/ 03 сентября 2010

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

git merge -s recursive -Xsubtree=dir2 upstream/master
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...