How do you choose which changes go into a commit and which don't without an equivalent of a staging area?
A bigger question is what to do when you only want specific chunks from the diff in your commit. I tend to faff around with stash, interactive sdiff and hand editing the patch when I need to dissect a chunk, a situation I feel could be better.
Magit is probably the best chrome for Git I personally think.