The big downside of these (for me) is that they don't let me use the great bash completion that git (optionally) provides.
# Make git completion work with aliases
complete -o default -o nospace -F _git_checkout gco
complete -o default -o nospace -F _git_rebase grb
complete -o default -o nospace -F _git_branch gbdf
complete -o default -o nospace -F _git_branch gbd
complete -o default -o nospace -F _git_diff gd
complete -o default -o nospace -F _git_log gl
complete -o default -o nospace -F _git_log glp