Я делаю слияние с merge.conflictStyle
, установленным на diff3
. Обычно это вставляет три (3) секции, разделенные четырьмя (4) наборами символов.Git - diff3 Conflict Style - временная ветвь слияния
Git Documentation for Merge ясно объясняет, что означают эти символы для простого случая (как описано ниже).
Regular diff3:
Here are lines that are either unchanged from the common ancestor, or cleanly resolved because only one side changed.
<<<<<<< yours:sample.txt
Conflict resolution is hard;
let's go shopping.
|||||||
Conflict resolution is hard.
=======
Git makes conflict resolution easy.
>>>>>>> theirs:sample.txt
And here is another line that is cleanly resolved or unmodified.
Однако я получаю более сложный результат с многочисленными дополнительными линиями (см. Ниже) У меня такое чувство, что это связано с тем, что я совершил многочисленные слияния в предках коммитов, которые я сейчас схожу, но я не могу понять, что означают лишние строки. Я также не могу найти какую-либо документацию для этого поведения.
Вот что я получил (отредактировал, конечно, чтобы защитить личность кода).
(Там нет конфликта маркеров в коде любого из фиксаций я пытаюсь объединить, так что это не ответ.)
<<<<<<< ours
||||||| base
<<<<<<< Temporary merge branch 1
||||||| merged common ancestors
if (sendRedirect(result))
return new Result("redirect");
=======
if (result.getId() != null)
{
object = new SomeObject(searchResult.getId()) ;
}
if (sendRedirect(result)){
return new Result("redirect");
}
>>>>>>> Temporary merge branch 2
=======
if (result.getId() != null)
{
object = new SomeObject(searchResult.getId()) ;
}
>>>>>>> theirs
Я считаю, что this question спрашивает то же самое, но ответ не объясняет ничего другого, что он имеет какое-то отношение к diff3, о котором вопроситель уже указал в заголовке как нечто знакомое ему. Я попытался дважды отредактировать этот вопрос, но его отклонили, поэтому я снова спрашиваю его.
В верхней части моей головы я бы сказал, что похоже, что кто-то в какой-то момент в прошлом совершил файл, в котором все еще были отмечены конфликты слияния. Таким образом, эти маркеры слияния теперь считаются частью фактического файла в одном родителе или другом в текущем слиянии ... – twalberg
@twalberg Я указал в вопросе, что это не так. –
Извините, я взял буквальную интерпретацию «В коде каких-либо коммитов, которые я пытаюсь объединить, конфликтов нет», что не исключает, что в ветке могут быть некоторые из них, которые вы пытаетесь объединить * в * ... – twalberg