Based on this article, I modified it a little bit in order to make it work on Mac:

[diff]   tool=diffmerge                                                                                                                   
[difftool "diffmerge"]
cmd = exec /Applications/DiffMerge.app/Contents/MacOS/DiffMerge \"$LOCAL\" \"$REMOTE\"
[merge]
tool = diffmerge
[mergetool "diffmerge"]
cmd = exec /Applications/DiffMerge.app/Contents/MacOS/DiffMerge --merge --result=\"$MERGED\"\n\"$LOCAL\" \"$BASE\" \"$REMOTE\"
trustexitcode = false