他们之间有什么区别?我的搜索引擎结果只讨论vimdiff,但命令
git mergetool
给了我两个。
答案 0 :(得分:18)
vimdiff2
在commit 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
特别有用。