I use Vim with vcscommand plugin. Although the plugin supports a host of Version Control Systems, I use it specifically for Git.
Using VCSCommand, you can (almost) accomplish all the major features exposed by git right from within the vim.
VCSVimDiff command is one of the best features of VCSCommand plugin. You can view a colored diff right from inside Vim!
What more Vim and VCSCommand both are open source :)
Side Note:
Vim along with NERD_Tree.vim, xml.vim, surround.vim and few other plugins, makes it a complete IDE that works pretty good (at least for me) with git. Search vim.org (or Google!!) for plugins that suits your requirement or taste.