Despite Git’s reputation for being ridiculously command-line centric, Git users are actually pretty spoilt for choice when it comes to graphical front ends. Here’s what I use.
Atlassian SourceTree has been around for a while on the Mac, but it has only recently seen a 1.0 release for Windows. It is free, though it does require user registration.
In terms of features, SourceTree does just about everything I want it to, and visually it’s the one I find easiest on the eye. One particularly nice feature of SourceTree is that it automatically fetches from all your remotes every ten minutes, so you’re quickly kept abreast of what your colleagues are working on. My main gripe with it is that “Push” to a Subversion repository doesn’t work, even though it does bring up a dialog box saying that it will, so I have to drop to a command prompt to type
git svn dcommit. I’d also like to see an interface to
git bisect, though no doubt that will come in due course.
For integration with Windows Explorer and Visual Studio, I use Git Extensions:
I don’t use it for that much else, mainly because I find it visually a bit harsh, but it’s pretty fully featured. One nice feature is the ability to recover lost commits — useful if you do an unintended
git reset --hard.
If you find that Git Extensions doesn’t show up in Visual Studio 2012, you may need to explicitly tell Visual Studio where to find it. This thread on the Git Extensions Google group tells you what you need to know.
My merge tool of choice is Perforce Merge:
It’s a really nice tool that’s easy on the eye, easy to use, and gives you a very clear view of what’s changed. If you’re still using TortoiseMerge or kdiff3, you’re missing out.