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
Diff
tab -
Choose
Custom
both asVisual Diff Tool
and 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
~/.gitconfig
file 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: