Git - diff3 Conflict Style - Временная ветка слияния
Я делаю слияние сmerge.conflictStyle
установлен вdiff3
, Обычно при этом вставляются три (3) раздела, разделенных четырьмя (4) наборами символов.
Git Документация для слияния ясно объясняет, что означают эти символы для простого случая (как описано ниже).
Обычный 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
я полагаю, чтоэтот вопрос задает то же самое, но ответ не объясняет ничего другого, поскольку он имеет какое-то отношение к diff3, который вопросник уже указал в названии как нечто, с чем он / она знаком. Я дважды пытался отредактировать этот вопрос, но получил отказ, поэтому я спрашиваю его снова.