

That is why I like the approach of GitDiff.bat - power-diffing with GI, which allows you to review the list of files with a difference, before selecting one to examine its internal differences. Git diff -name-only | while read filename doīut that only works by opening n windows for n files (if you try to use the -s option of WinMerge, it will not work because of the temp files being deleted by the difftool too early) Original difftool by directories script (December 2009)Īs Seba Illingworth mentions in his answer, a script git-diffall.sh (also put in the path) can do just that: #!/bin/sh See " Patch difftool: teach difftool to handle directory diffs", and the answer " Directory comparison of Git branches" for more details. " git difftool" learned the " -dir-diff" option to spawn external diff tools that can compare two directory hierarchies at a time after populating two temporary directories, instead of running an instance of the external tool once per a file pair. Update June 2012 (2-and-a-half years later):Ĭomparing directories instead of file-by-file will be available soon: If you want git diff to launch WinMerge, just set: set GIT_EXTERNAL_DIFF=winmerge.shīut the real added value comes from the ability to use that same diff tool to present all differences in one batch instead of presenting them sequentially, forcing you to close the diff tool windows one file at a time. (see WinMerge Command-line options) git difftool "$PROGRAMFILES/WinMerge/WinMergeU.exe" -e -u -dl "Local" -dr "Remote" "$1" "$2" With winmerge.sh stored in a directory part of your PATH: #!/bin/sh

The first part (using winmerge) is described in " How do I view ‘git diff’ output with visual diff program?" C:\myGitRepo>git config -replace -global diff.tool winmergeĬ:\myGitRepo>git config -replace -global "winmerge.sh \"$LOCAL\" \"$REMOTE\""Ĭ:\myGitRepo>git config -replace -global difftool.prompt false Git 2.5+ (Q2, 2015) is now aware of Winmerge as a diff or merge tool! As detailed in " git mergetool winmerge", a simple git config diff.tool winmerge will be enough.
