最近使用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。多半会报错如下
解决办法:
[difftool "diffmerge"]
cmd = sgdm \"$LOCAL\" \"$REMOTE\"
// 改为(注意rogram\\ Files中间的两个斜杠,很重要!否则继续报错,很多教程没写这点):
[difftool "diffmerge"]
cmd = C:/Program\\ Files/SourceGear/Common/DiffMerge/sgdm.exe \"$LOCAL\" \"$REMOTE\"
5、解决中文乱码问题
git difftool
点y,弹出界面,做如下选择
退出当前界面,重新git difftool
一切OK,可以正常使用啦!