Best git clients on windows
Tue, Jul 3, 2012
Top 5 of all time
MsysGit
http://msysgit.github.com/
This is the most flexible, most hacker points way to use git, but chances are if you are the type of person to do it, you could tell us twelve more awesome things that are possible.
While it’s aimed at power users, quite a lot of effort has been put in to make git more user friendly, with recommendations when you get commands slightly wrong and fairly informative errors.
Highly recommended to use and know well if you aim to do any remote work (ie; via ssh) using git, or any tasks involving automation (say, a mirroring your svn to git), it’s the first choice to make.
Msysgit is a handy little packaging of the git toolset in a cygwin environment. You’ll find yourself stepping out of the typical windows command prompt and into cygwin for every little task, you’ll type ‘ls’ instead of ‘dir’ 9 times out of 10 – and you’ll feel right at home using git in this fashion.
Pain points will include ssh keys (you have to get your hands dirty with putty/pagaent, as with many things involving ssh keys on windows), and if you don’t have your merge tool (TortoiseMerge is highly recommended) available, it’s back to manual merging.
Msysgit will help you to debug your git environment by providing a similar set of features as the linux git client.
Eclipse team provider (E-Git)
E-Git. It’s the Eclipse team provider. It’s another fancy it just works solution. Or the first mentioned in this article – take your pick.
If you know how to fly the eclipse market, it’s a snap to get your hands on it. The user experience is just what you’d expect from an IDE solution – it’s a slick experience.
Working with a cloned repo is a breeze, offering a fairly easily understood experience. Of interest, revert via compare isn’t typically offered by other clients, who focus strongly on ‘revert via reset’.
The biggest hassle with be configuring repos if you are used to just typing a remote + refspec; being something you have to do at the very start of your projects.
Other than that minor wrinkle, it’s all fairly straight forward.
One thing to check carefully – does the merging allow you to avoid fast forward merges? A look at the user interface doesn’t really make this clear, and if you need to work without fast forward mering this may be a deal breaker.
Be sure to check out the tutorials for more – http://unicase.blogspot.com.au/2011/01/egit-tutorial-for-beginners.html
NetBeans 7.1+
http://netbeans.org/kb/docs/ide/git.html
If you are looking for an enterprise focused PHP IDE, NetBeans is probably on the shortlist. As of version 7.1 it provides all of the git bells and whistles you can eat.
Kids, don’t take that previous statement as an enticement to eat whistles now.
All of the functionality you’d expect is there, and a bit more – setting up private keys is a snap. The integration with the rest of the IDE is top notch and quite comparable to any other source control provider.
Having used TortoiseSVN & family previously, the only fault I have for it is the commit, and merge dialogs – everything else looks nice, but these seem to have fallen down the functionally ugly tree.
When that’s the worst thing you can say about a tool, that’s not too shabby.
TortoiseGit
http://code.google.com/p/tortoisegit/
The first time I used TortoiseGit, it was version 0.3.3. It certainly didn’t impress in the same way that TortoiseSVN did – the underlying model of git was new to me, no ah hah moments were forthcoming. I quickly found myself at a loss and gave up.
Today I’m more than happy to eat my words. Though you need to install mysisgit before hand (and it can be a little confusing to find exactly the right executable to install), TortoiseGit has achieved a parity of usability with TortoiseSVN – the two will happily co-exist in your toolset.
Why TortoiseGit? I offer you simply this picture:
Seamless integration of the most important git commands, and everything else you could possibly ever want as well right in your window environment – no further than a right click away at all times.
If you use text editors more than IDEs, this is the way to go. Viewing logs, committing, pushing and pulling are all clean, easy experiences – the shared heritage with TortoiseSVN shows through strongly.
Weaknesses include the reliance on mysisgit to set up first, and issue tracker integration can be a bit hit and miss depending on the approach you take via plugins.
Git for IntelliJ
http://www.jetbrains.com/idea/features/version_control.html
Supported out of the box with IntelliJ, git integration is on an equal footing with the Eclipse and Java offerings.
About the Author
Daniel O’Connor is an Architect, Software Developer and enthusiastic Open Source contributor.
His experience stems from over 7 years of web oriented and enterprise development, working collaboratively with teams located in Australia, New Zealand, Manila, the US & Europe for financial, mortgage and real estate industry clients, as well as deep involvement with a number of Open Source projects.
I really like SmartGit. It’s a relatively simple interface for managing git repositories.
GitExtensions definitely deserves a place in this list