Since git reuses the same temporary file for commit messages, I recommend using
[core]
editor = mate -wl1
so TextMate puts the cursor onto the first line every time instead of remembering the cursor position from last time.
And if you create the following shell script...
#!/bin/sh
#
# ~/bin/git-opendiff.sh
#
/usr/bin/opendiff "$2" "$5" -merge "$1"
...and configure git to use it as external diff tool...
$ git config --global diff.external ~/bin/git-opendiff.sh
...you can use opendiff for diffs and merges.