Last active
January 27, 2023 08:11
-
-
Save jvandyke/4355099 to your computer and use it in GitHub Desktop.
Use PHPStorm/WebStorm for git diff and merge tools
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ~/.gitconfig | |
# Add this to your global git configuration file | |
# Change phpstorm to webstorm, if you use that. | |
# Diff and merge tool changes | |
# Run `git difftool <directory/file>...` or `git mergetool <directory/file>...` | |
[merge] | |
tool = phpstorm | |
[diff] | |
tool = phpstorm | |
[difftool] | |
; This setting is optional, but prevents an annoying prompt between diffing files. | |
prompt = false | |
[difftool "phpstorm"] | |
; Putting this path here doesn't work. I would love to know why. | |
; path = /Applications/PHPStorm.app/Contents/MacOS | |
cmd = webide diff $(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$REMOTE") && pwd)/$(basename "$REMOTE") | |
trustExitCode = true | |
[mergetool "phpstorm"] | |
cmd = webide 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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Add this to your .profile, .zshrc, .bashrc, etc. | |
# Add PHPStorm's bin directory to your path. | |
export PATH="/Applications/PHPStorm.app/Contents/MacOS:$PATH" |
If you can not find wstorm
, open WebStorm, and go to Tools
in menu bar then click Command-line Laucher
. My WebStorm version is 2016.2.3
.
BTW, I can directly use the solution of @JohnAlbin. Thanks.
- You can also configure it with commands like
git config --global mergetool.pstorm.trustExitCode true
. - You can use
difftool --dir-diff
, but currently tmp-files may be instantly removed, so I appended mydifftool.pstorm.cmd
with; read
and pressEnter
after diff completion.
FYI: @zored I had to use && read
instead on my system, in order for it to not delete the files before I'm done with them.
But that way, it works (for me too). Great work around, though! ๐ ๐
P.S.: adding an additional --symlinks
flag to the difftool --dir-diff
is also a nice "upgrade"...
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@thoma5B You just saved me some headaches with that prompt, thanks mate.