If you haven't tried it, I highly recommend taking a look at Stacked Git (stg). It adds a beautiful layer on top of git that helps you manage a "stack" of commits. Useful when you're working on a large change and want to think about smaller commits.
Combined with `git add -p`, stg is easily the most useful git tool in my toolbox.
Combined with `git add -p`, stg is easily the most useful git tool in my toolbox.