当遇到冲突时,可以直接根据冲突文件中冲突的两块代码对比着改正确了,但用哪个更合理,如何去判断,如果有一个它们共同的祖先节点的代码来对比,合并起来有所参考会舒服些,即冲突文件中有三块代码,显示当前,远程,和两者最近的祖先,三者对比来选择用哪一部分,怎么配置呢?如下:
// 设置 merge.conflictstyle 选项为 diff3 作为以后合并冲突的默认选项
git config --global merge.conflictstyle diff3
设置diff3以后,还是要手动打开文件修改或者命令行修改,还是不够直观,如果有一个可视化UI合并冲突的工具,就更舒服了。
这里推荐KDiff3,KDiff3是一个用来对文件或目录进行比较合并的工具,在比较时它可以同时针对两个或三个文件目录而进行。通过比较,它将文件目录的差异按行加以显示。同时,KDiff3提供有自动化的合并工具,方便使用者进行有关合并的操作,配置方式如下:
git config --global --add mergetool kdiff3
git config --global --add mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global --add mergetool.kdiff3.trustExitCode false
git config --global --add difftool kdiff3
git config --global --add difftool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global --add difftool.kdiff3.trustExitCode false
git config --global merge.tool kdiff3
git config --global diff.tool kdiff3
大功告成,之后每当发生冲突时,输入以下命令即可启动kdiff3插件:
git mergetool