My best experience so far has been with a combination of SmartGit and TortoiseGit. SmartGit doesn't have interactive rebase and doesn't allow you to specify refspec when pushing. I've had to use the former occasionally and I use the latter all the time, because we work with Gerrit.
Of course, you could throw TortoiseGit out of this whole story if you don't need that kind of stuff or if you're comfortable with using command line for certain details.
Comments
My best experience so far has been with a combination of SmartGit and TortoiseGit. SmartGit doesn't have interactive rebase and doesn't allow you to specify refspec when pushing. I've had to use the former occasionally and I use the latter all the time, because we work with Gerrit.
Of course, you could throw TortoiseGit out of this whole story if you don't need that kind of stuff or if you're comfortable with using command line for certain details.