最近使用git时发现git diff 不方便,尤其是代码改动较大的时候,需要分成很多行,通过空格翻页对比,用户体验极差

网上搜了下发现有个工具 diffmerge 貌似挺好用

下载地址
http://sourcegear.com/diffmerge/downloaded.php

按照网上配置时总是报错,解决不了,最后自己搞定了,记录一下,已经在多个电脑测试OK,希望对大家有帮助

1、根据自己电脑下载完默认无脑安装diffmerge即可,我在win7和win10都测试过

2、配置环境变量,将sgdm.exe的路径C:\Program Files\SourceGear\Common\DiffMerge 添加到windows环境变量的path下
win7系统是我手动添加的,win10貌似自动添加好了。总之验证一下

3、Git里做些配置
复制以下代码

git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd 'sgdm "$LOCAL" "$REMOTE"'
git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.cmd 'diffmerge --merge --result="$MERGED" "$LOCAL" "$(if test -f "$BASE"; then echo "$BASE"; else echo "$LOCAL"; fi)" "$REMOTE"'
git config --global mergetool.diffmerge.trustExitCode true
git config --global mergetool.keepBackup false

直接在Git bash里粘贴这些代码就行

执行完,你打开电脑里 .gitconfig 文件,可以看到你配置好的东东

4、如果你代码有改动,这时候你在git bash 里输入git difftool。多半会报错如下

Git diffmerge 工具的配置及问题解决_diffmerge

解决办法:

[difftool "diffmerge"]
	cmd = sgdm \"$LOCAL\" \"$REMOTE\"
	
// 改为(注意rogram\\ Files中间的两个斜杠,很重要!否则继续报错,很多教程没写这点):
[difftool "diffmerge"]
    cmd = C:/Program\\ Files/SourceGear/Common/DiffMerge/sgdm.exe \"$LOCAL\" \"$REMOTE\"

5、解决中文乱码问题

git difftool

Git diffmerge 工具的配置及问题解决_Common_02

点y,弹出界面,做如下选择

Git diffmerge 工具的配置及问题解决_bash_03


Git diffmerge 工具的配置及问题解决_Common_04

Git diffmerge 工具的配置及问题解决_diffmerge_05


退出当前界面,重新git difftool

Git diffmerge 工具的配置及问题解决_diffmerge_06

一切OK,可以正常使用啦!