Wed, 14 Sep 2011
Git

As well as being the creator of the Linux kernel, Linus Torvalds also created the source code management system called Git.

Git has caught the imagination of a very large number of people writing software, as well as many other people writing things they want to share, version and track. It's is a Distributed Version Control System, which means that anyone with the repository of files has the full respository and all history. No remote server needed.

Git's been very successful for a number of reasons.

Firstly, it's an excellent tool that works in a way many developers find natural in today's networked world : offline use, easy branching, good merging etc. It's also extremely fast.

It also has a very broad ecosystem built around it, not least Github, a very popular and sophisticated web-based front-end.

Perhaps one of the big reasons for its growing popularity is its constant good "press". People write about it a lot, and what they write is often of a very high quality. Guides, tips and tricks, workflows and diagrams, and free online books. Git discussion and comment has a very high signal to noise ratio. So there is a constant good buzz around it. This is the best advertisement possible.

Linus Torvalds has a pretty good track record now.

Personally, I've been using a competing (but similar) DVCS called Mercurial. At the time (a couple of years ago), Git was a bit too arcane and harder to use and understand. Mercurial (being Python based) also ran better on Windows. These differences are much less important now however and Mercurial is also an excellent tool with most of the same advantages as Git.

I have borrowed the nice little pictures here from Scott Chacon's Git Reset post. Scott's the author of the Pro Git book, available for free at the same place. This is a great example of the high quality Git ecosystem