我正在与merge.conflictStyle
set to合并diff3
。通常,这会插入由四 (4) 组字符分隔的三 (3) 个部分。
合并的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 有关的任何其他内容,提问者已经在标题中指出这是他/她熟悉的东西。我尝试编辑该问题两次,但都被拒绝了,所以我再问一次。