I use opendiff and textmate as external tools for git. You can configure them by running the following commands in bash:
#TextMate as the default editor
git config --global core.editor "mate -w"
#Opendiff (FileMerge) to resolve merge conflicts:
git config --global merge.tool opendiff
#Opendiff (FileMerge) as diff tool
git config --global diff.tool opendiff
Alternatively you can configure the gitconfig file by adding the following:
[diff]
tool = opendiff
[merge]
tool = opendiff
[core]
editor = mate -w
The difftool and mergetool is only available after version 1.6.3