Git: Как объединить небольшую, но очень старую ветку?

Мы переходим с SVN, а также объединяем несколько веток. Чтобы значительно упростить, у нас есть ветка B, которая была разветвлена ​​давным-давно и имеет небольшую доработку, скажем, 8 измененных файлов из сотен. Между тем, на мастере произошли огромные изменения:

A 
|
X---(a few changes)--- B
|
|(hundreds of changes)
|
HEAD/master 

Если я сделаю «git merge master» из ветки, будет показано множество конфликтов слияния, потому что B и HEAD теперь сильно отличаются. Но это кажется (наивно, мне) неправильным: B не так уж далеко от ствола, это просто очень далеко назад во времени.

Есть ли способ воспользоваться этим фактом? Должен ли я попытаться сначала объединить B обратно с X, а затем оттуда в HEAD? Какими будут команды для:

  1. Определить версию X
  2. См. Различия между B и X
  3. Объединить B с X
  4. Обновить эту новую объединенную версию до HEAD

Есть ли другой подход, который люди используют в таких ситуациях?

(Вполне возможно, что я сказал некоторые очень глупые и не-мерзкие вещи в предыдущем - не стесняйтесь указывать на них. :))

7
задан Steve Bennett 10 January 2012 в 03:55
поделиться