
Something like this should give the flavour of what you can do ('mymerge' is a fictional tool). You have to be a bit careful with the escaping whether you directly edit a config file or set the variable with the git config command. Otherwise, you can set mergetool.cmd to a bit of shell to be eval'ed at runtime with the shell variables $BASE, $LOCAL, $REMOTE, $MERGED set to the appropriate files.
#P4MERGE GIT FULL#
If the merge tool is one of the ones supported natively by it you just have to set mergetool.path to the full path to the tool (replace by what you have configured merge.tool to be. In brief, you can set a default mergetool by setting the user config variable merge.tool. Git mergetool is fully configurable so you can pretty much chose your favourite tool.
#P4MERGE GIT HOW TO#
$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) Even better would have been to take advantage of an environment variable (e.g.Although ~ 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.The above is an example path when p4merge was installed for the current user, not system-wide (does not need admin rights or UAC elevation).If it was listed as valid, you have to define in addition to merge.tool: git config -global c:/Users/my-login/AppData/Local/Perforce/p4merge.exe If p4merge was listed as available, it is in your PATH and you only have to set merge.tool: git config -global merge.tool p4merge

You should see p4merge in either available or valid list. You can display list of supported tools by running: git mergetool -tool-help note that by default Perforce will add its installation dir to PATH, thus no need to specify full path to p4merge in the commandĪs pointed out by Pakosz, latest msys git now "natively" supports p4merge (tested on 1.8.5.2.msysgit.0).added double quotes for all file names so that files with spaces can still be found by the merge tool (I tested this in msys Git from Powershell).

the custom tool config value resides in "mergetool.cmd", not "merge.cmd" (silly me, spent an hour troubleshooting why git kept complaining about non-existing tool).valid for all git projects not just the current one The changes (relative to Charles Bailey): Or, from a windows cmd.exe shell, the second line becomes : git config -global "p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"" 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: git config -global merge.tool p4merge
