The merge tool that ships with JetBrain's IntelliJ IDEA or WebStorm is really awesome and way better than FileMerge. It is quite simple to configure SourceTree to use it as the default mergetool:
-
Open the SourceTree preferences and select the
Difftab -
Choose
Customboth asVisual Diff Tooland asMerge Tool -
Paste the following commands into the textfields:
-
Diff Command:
/Applications/IntelliJ\ IDEA.app/Contents/MacOS/idea diff- Arguments:
$(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$REMOTE") && pwd)/$(basename "$REMOTE")
- Arguments:
-
Merge Command:
/Applications/IntelliJ\ IDEA.app/Contents/MacOS/idea merge- Arguments:
$(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$REMOTE") && pwd)/$(basename "$REMOTE") $(cd $(dirname "$BASE") && pwd)/$(basename "$BASE") $(cd $(dirname "$MERGED") && pwd)/$(basename "$MERGED")
- Arguments:
-
-
Close the settings. Happy merging!
To manually change the mergetool for git in general follow these steps:
-
Open the
~/.gitconfigfile with your favorite editor -
Add these lines somewhere in the config:
[merge] tool = intellij [difftool "intellij"] cmd = /Applications/IntelliJ\\ IDEA.app/Contents/MacOS/idea diff $(cd $(dirname \"$LOCAL\") && pwd)/$(basename \"$LOCAL\") $(cd $(dirname \"$REMOTE\") && pwd)/$(basename \"$REMOTE\") [mergetool "intellij"] cmd = /Applications/IntelliJ\\ IDEA.app/Contents/MacOS/idea merge $(cd $(dirname \"$LOCAL\") && pwd)/$(basename \"$LOCAL\") $(cd $(dirname \"$REMOTE\") && pwd)/$(basename \"$REMOTE\") $(cd $(dirname \"$BASE\") && pwd)/$(basename \"$BASE\") $(cd $(dirname \"$MERGED\") && pwd)/$(basename \"$MERGED\") trustExitCode = true
It takes a few more seconds to launch the IntelliJ merge tool than to launch FileMerge, but it is definitely worth waiting.
Based on this article on coderwall: https://coderwall.com/p/gc_hqw/use-intellij-or-webstorm-as-your-git-diff-tool-even-on-windows

Thanks.
I've used this to work with webstorm: