FileMerge (opendiff) can really come in handy when you need to visually compare merging conflicts. Other times it's just a nice visual way to review your days work.
The following method works by creating a simple bash script (git-diff-cmd.sh) that sets us up with the proper command line arguments for Git to pass off files to FileMerge.
-
Open the bash script for editing:
vi ~/bin/git-diff-cmd.sh
-
Paste the following code:
#!/bin/sh /usr/bin/opendiff "$2" "$5" -merge "$1"
-
Make the bash script executable:
chmod +x ~/bin/git-diff-cmd.sh
-
Tell Git (globally) to run our bash script when 'git diff' is issued:
git config --global diff.external ~/bin/git-diff-cmd.sh
Now head over to your Git-aware project directory and issue a
git diff /path/to/modified/file.py
and FileMerge will pop up showing you the
differences against it and HEAD.
You can also do things like git diff --cached
to review all the changes
against HEAD.
There are two mode when you're in vi. The "command" mode in which you type commands, and the edition mode. To enter the edition mode, you should type "i", or "a". Then you can paste the code. To leave the edition mode, hit the escape key. To quit and save the changes, type ":x" then the return key while in command mode.