Are you a perfectionist? Do you have worry about committing broken code? I am and I try to only commit after getting my project working. This is a dilemna when switching between branches and changing context frequently which often happens to me at work. At work we use subversion and I do not know of a way to stash commits like you can do in git. I find this feature of git very useful.