git中vimdiff和vimdiff2的区别是什么?

时间:2015-01-12 12:11:09

标签: git vim vimdiff

他们之间有什么区别?我的搜索引擎结果只讨论vimdiff,但命令

git mergetool 

给了我两个。

1 个答案:

答案 0 :(得分:18)

vimdiff2commit 0008669中引入(2010年9月,适用于git 1.7.4)

它是like vimdiff,但有不同的合并选项(如commit b2a6b71中所述,git 1.8.2:“vimdiff和vimdiff2仅因其合并命令而异”)。

它(vimdiff2)强制双向合并,而vimdiff如果检测到基础(共同祖先),将使用 3-way merge

gvimdiff|vimdiff)
    if $base_present
    then
        "$merge_tool_path" -f -d -c 'wincmd J' \
            "$MERGED" "$LOCAL" "$BASE" "$REMOTE"
    else
        "$merge_tool_path" -f -d -c 'wincmd l' \
            "$LOCAL" "$MERGED" "$REMOTE"
    fi
    ;;
gvimdiff2|vimdiff2)
    "$merge_tool_path" -f -d -c 'wincmd l' \
        "$LOCAL" "$MERGED" "$REMOTE"
    ;;

请注意,commit 7c147b7(2014年4月,对于2014年8月的Git 2.1.0)实际上也引入了vimdiff3

  

除了隐藏其他窗口外,它与默认设置类似   这可确保在主合并窗口中仍然可以看到已删除/添加的颜色,但其他窗口不可见。

     

merge.conflictstyle=diff3特别有用。