git merge: конфликты в файлах, которые не были затронуты - PullRequest
1 голос
/ 05 ноября 2011

Я попытаюсь проиллюстрировать мою проблему на следующем примере:

У меня есть git-репозиторий ядра linux, содержащий версию 2.6.31-6 с некоторыми изменениями. Я хотел бы объединить это, скажем, с 2.6.32. Но во время git pull <2.6.32 путь к репозиторию> я вижу много конфликтов, которые нужно разрешать вручную в файлах, которых я никогда не трогал.

Что с этим не так? Я имею в виду, что у git полная история коммитов и информация о файлах, которые были изменены после «родительского коммита», и файлах, которых не было. Почему он не может применить самые последние изменения к файлам, которые не были затронуты?

UPDATE1: @DanAloni и @KevinBallard объяснили, почему возникают конфликты при объединении -rc с более новым стабильным выпуском.

Но есть ли способ уменьшить количество конфликтов вручную, особенно в ситуации, когда -rc объединен с выпуском?

ОБНОВЛЕНИЕ2: Спасибо @DanAloni за объяснение

1 Ответ

4 голосов
/ 05 ноября 2011

Вы уверены, что версия, которую вы описываете как 2.6.31-6, входит в историю 2.6.32? Насколько я знаю о версиях ядра Linux, 2.6.31-6 звучит для меня как 2.6.31 плюс «стабильные патчи веток». Это, безусловно, может конфликтовать с историей, которая разветвляется от 2.6.31 и далее до стабильного дерева 2.6.32. Итак, я думаю, что вы пытаетесь объединить стабильный или исправленный fork из 2.6.31 со стабильным деревом 2.6.32. Это, конечно, не то, что git описывает как «перемотка вперед», и я, конечно, ожидаю конфликтов там.

...