首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git - diff3冲突样式-临时合并分支

Git - diff3冲突样式-临时合并分支
EN

Stack Overflow用户
提问于 2015-07-13 20:10:52
回答 1查看 6.1K关注 0票数 27

我正在与设置为merge.conflictStylediff3进行合并。通常,这会插入由四(4)组字符分隔的三个(3)段。

用于合并的Git文档清楚地解释了这些符号对于简单情况意味着什么(如下所述)。

正则diff3:

代码语言:javascript
复制
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.

然而,我得到了一个更复杂的结果与许多额外的行(见下文)。我有一种感觉,这与我在我目前正在合并的提交的祖先中进行了多次合并有关,但我不知道这些额外的行意味着什么。我似乎也找不到任何关于这种行为的文档。

这里是我得到的(当然,编辑,以保护代码的身份)。

(在我试图合并的任何提交的代码中都没有冲突标记,所以这不是答案。)

代码语言:javascript
复制
<<<<<<< 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有什么关系,提问者已经在标题中指出他/她熟悉的东西。我试着编辑了两次这个问题,但是被拒绝了,所以我再问一次。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-13 20:41:02

您在这里所拥有的(使用Temporary merge branch 1和与2相同)是由于git的“递归合并”方法:

代码语言:javascript
复制
            o->branch1 = "Temporary merge branch 1";
            o->branch2 = "Temporary merge branch 2";
            merge_recursive(o, merged_common_ancestors, iter->item,
                            NULL, &merged_common_ancestors);

(merge-recursive.c,1940年线前后)。当提交图有多个合并基的候选项时,Git将执行递归合并(更多信息请参见这篇博客文章 )。要简化一点,git已经完成了内部递归合并,这会产生合并冲突,然后执行外部合并并触发另一个合并冲突。您看到的是外部合并冲突(ours vs theirs),内部冲突显示为“基本”版本。

您可能会发现,通过选择其他合并策略或使用替代的diff算法( patienceminimalhistogram算法相对于默认的myers),可以获得更好的结果。或者,您可能需要稍微禁用diff3样式,这样就看不到内部合并了。

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31392513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档