在git-merge的手册页中,可以使用多种合并策略。
resolve-使用三路合并算法只能解析两个头(即当前分支和您从中拉出的另一个分支)。它试图仔细检测纵横交错的歧义,并且通常被认为是安全且快速的。
递归 -这只能使用3向合并算法解析两个磁头。当可以用于三向合并的公共祖先不止一个时,它将创建公共祖先的合并树,并将其用作三向合并的参考树。据报道,通过对来自Linux 2.6内核开发历史记录的实际合并提交进行的测试,可以减少合并冲突,而不会引起错误合并。此外,这可以检测和处理涉及重命名的合并。当拉或合并一个分支时,这是默认的合并策略。
章鱼 -可以解决两个以上的问题,但拒绝执行需要手动解析的复杂合并。它主要用于将主题分支头捆绑在一起。当拉或合并多个分支时,这是默认的合并策略。
我们的 -可以解析任意数量的头,但是合并的结果始终是当前分支头。它旨在取代侧支的旧开发历史。
子树 -这是一种修改的递归策略。合并树A和B时,如果B对应于A的子树,则首先调整B以匹配A的树结构,而不是读取相同级别的树。对公共祖先树也进行了此调整。
什么时候应该指定不同于默认值的内容?每个方案最适合什么情况?