Until the following clumsiness in git get resolved, it remains in my opinion an inferior revision control system to svn.
1) Attempts to push changes should not require any intervention on the part of the user to pull and rebase if someone else got in a commit ahead of time, this should be done automatically. I don't care that someone else might have gotten a commit in first, especially if they're working on an entirely different part of the repo. The only case where it should require manual intervention is if a merge fails because we touched the same block of code in the same file. Anything else, including touching different parts of the same file, should be transparent.
2) Attempts to pull in general should not stumble because I've made changes to a file and not added it. Git should be tracking changes automatically and only require user intervention if, again, the pulled changes outright conflicts with a local change, regardless of whether it's "added" or not.
3) If I commit multiple files at once, I should be able to roll back any arbitrary number of those files instead of having to revert the entire commit.
As a user, I should not need to have to fight with the revision control software every time I need to make a change, nor should I need to tell the revision control software what to track and how to track it. It's its bloody job to do that, why should I suddenly have to take on additional management responsibilities when I gain nothing of benefit in return? I should not need to care about what anyone else is doing UNLESS we happen to be trying to do the same thing. Considering every project wherein I've used git the quickest solution to deal with git's merge cockups is to do a clean checkout, I am unsure why everyone seems so enthusiastic about it. Are all of you expecting to work in complete isolation from each other and never have to deal with the inevitable when you try to commit? Cause avoiding these sorts of problems in git requires a discipline and level of coordination that this project has historically not demonstrated, whereas our usage of svn has basically kept people relatively insulated from these issues by virtue of the fact that svn handles most of them for you.