Setting up a difftool for git on windows

October 1, 2014

Well i have been using DiffMerge from SourceGear as the default diff tool in Visual Studio for quite a few years now. I use git more and more now but I never took the time to add a diff tool to the git configuration. But since i recently got a new dev machine I thought i might just set that up as well.


I installed with Chocolatey (remember to run cmd og PowerShell as admin) which i use to manage most of my dev tools. In fact i maintain a script on github with all the tools I use, so if you haven’t used Chocolatey for application installation, now’s your chance.

choco install diffmerge


The following Guide is just copied from SourceGear and works at least for version 4.2.x

For diff:

git config --global diff.tool diffmerge

git config --global difftool.diffmerge.cmd "C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe `$LOCAL `$REMOTE"

For merge:

git config --global merge.tool diffmerge

git config --global mergetool.diffmerge.trustExitCode true

git config --global mergetool.diffmerge.cmd "C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe /merge /result=`$MERGED `$LOCAL `$BASE `$REMOTE\"

Well of course you can also just edit the .gitconfig and add the settings directly into it. That would look something like this.

    tool = diffmerge
[difftool "diffmerge"]
    cmd = "C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe $LOCAL $REMOTE"
    tool = diffmerge
[mergetool "diffmerge"]
    trustExitCode = true
    cmd = "C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe /merge /result=$MERGED $LOCAL $BASE $REMOTE"
comments powered by Disqus