I’ve tried msysGit and Git on Cygwin. Both work just fine in and of themselves and both run gitk and git-gui perfectly.
Now how the heck do I configure a mergetool? (Vimdiff works on Cygwin, but preferably I would like something a little more user-friendly for some of our Windows-loving coworkers.)
To follow-up on Charles Bailey’s answer, here’s my git setup that’s using p4merge (free cross-platform 3way merge tool); tested on msys Git (Windows) install:
or, from a windows cmd.exe shell, the second line becomes :
The changes (relative to Charles Bailey):
Download: http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
EDIT (Feb 2014)
As pointed out by @Gregory Pakosz, latest msys git now ‘natively’ supports p4merge (tested on 1.8.5.2.msysgit.0).
You can display list of supported tools by running:
You should see p4merge in either available or valid list. If not, please update your git.
If p4merge was listed as available, it is in your PATH and you only have to set merge.tool:
If it was listed as valid, you have to define mergetool.p4merge.path in addition to merge.tool:
~should expand to current user’s home directory (so in theory the path should be~/AppData/Local/Perforce/p4merge.exe), this did not work for me$LOCALAPPDATA/Perforce/p4merge.exe), git does not seem to be expanding environment variables for paths (if you know how to get this working, please let me know or update this answer)