Допустим, у меня есть две ветви в RepoX, называемые BranchA и BranchB. RepoX также имеет подмодуль под названием SubmoduleY.Git: Слияние и субмодули
BranchA имеет SubmoduleY при пересмотре 'abc', BranchB имеет SubmoduleY в редакции 'def'.
Скажем, я хочу объединить BranchA в BranchB, но я хочу оставить SubmoduleY BranchB, указывая на его первоначальную версию 'def'. Я вижу пару способов сделать это:
Метод 1:
- заказ BranchB.
- Переместить SubmoduleY в ревизию 'abc', чтобы сделать фактическое слияние безболезненным (мы не хотим делать слияние на уровне подмодуля прямо сейчас).
- Зафиксируйте новую ревизию для SubmoduleY (мы не можем ее плавать для слияния).
- Объединение филиалов в отделение Б. Разрешать любые конфликты.
- Переместить SubmoduleY обратно в версию 'def'.
- Завершите новую ревизию для SubmoduleY.
- Push изменения до основного репо.
Метод 2:
же как метод 1, но вместо того, чтобы делать шаг 6, перебазирования и избавиться от дополнительного субмодуля фиксации с шага 3.
И, кажется, есть раздражающие недостатки:
Способ 1 ставит в историю два дополнительных фиксации.
Способ 2 забывает о любых изменениях, связанных с изменениями подмодуля, поскольку эти фиксации удаляются. Следовательно, любые слияния позже должны будут снова решить некоторые проблемы.
Есть ли лучший способ?
Отличное решение! Благодарю. – Ben 2010-12-08 17:56:01