http://meldmerge.org/

下载后建议安装路径不用改,直接一路下一步即可
解决合并之前设置 Git 使用的 diff 工具
git config merge.tool meld
git config merge.conflictstyle diff3
git config mergetool.prompt false
git config mergetool.meld.path "C:\Program Files (x86)\Meld\Meld.exe"
要查看支持的不同差异工具,请运行以下命令
git mergetool --tool-help
然后我们合并分支
git merge master
下面的提示信息就表示发生了冲突,合并到一个文件中
Auto-merging README.md
CONFLICT (add/add): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.
查看冲突文件 README.md 就会发现文件中有冲突符号
<<<<<<< HEAD
xxx
========
xxxx
>>>>>>>> MASTER
如果内容少的话,我们直接手动保留需要的内容后,删除冲突符号,就可以直接保存到暂存区,然后直接push到远程仓库即可。但是如果冲突内容特别多的话,有时候我们根本不知道哪里是改的哪里。。
因此,我们用mergetool工具来解决,
我们运行下面的命令,它会自动弹出一个可视化工具
git mergetool

左侧是当前分支修改内容,中间是我们解决冲突保留的内容,右侧是合并分支修改的内容,我们大多情况下直接把最右侧内容全选后,复制到中间编辑区ctrl+s保存就可以直接关闭窗口了。
然后可以再次运行下面的命令,查看分支之间的冲突信息
git diff dev master
然后用下面的命令查看分支的状态
git status
此时它会提示你还多了下面的一些.orig结尾的文件
这些都是mergetool 创建的(当然我们可以配置让它不要生成这些文件)
我们可以运行下面的命令,把这些全部清除
git clean -f
https://git-scm.com/docs/git-mergetool
https://zhuanlan.zhihu.com/p/468308445?utm_id=0