设置git的 diff tool

Windows 下配置 WinMerge 作为 diff tool

下载安装winmerge(开源)

创建一个包装脚本,git_diff.sh,设置模式为可执行

1
2
3
4
5
#!/bin/sh
LEFT=`cygpath -d ${1}`
RIGHT=`cygpath -d ${2}`
echo Launching WinMergeU.exe: $LEFT $RIGHT
/cygdrive/e/Program/WinMerge/WinMergeU.exe -e -ub "$LEFT" "$RIGHT"

告诉git用这个脚本来调用difftool

1
2
3
git config --global diff.tool winmerge
git config --global difftool.winmerge.cmd '/cygdrive/e/Program/WinMerge/git_diff.sh "$LOCAL" "$REMOTE"'
git config --global difftool.prompt false

difftool.prompt 默认为true,每次就问:是不是启动,够烦。

使用

例如:

1
git difftool HEAD^..HEAD

Linux 下配置 vimdiff

vimdiff 是vim带的一个diff

1
2
3
git config --global diff.tool vimdiff
git config --global difftool.prompt false
git config --global alias.d difftool