Pick of the week: Git

Posted on Fri, 19 Jun 2009 in Pick of the week

Git  - The stupid content trackerI have been using source code management systems ((Including, but not limited to: RCS, CVS, Subversion, Bazaar, Darcs & Mercurial)) for more than a decade, but I have never been quite happy with how they worked until I switched to git ((I switched to git late in 2006 when I got fed up with Subversion and the way it looses meta data during merges)). There were always something that couldn't be done ((E.g. no way to rename a directory in CVS)) or something that had to be done in a silly way ((E.g. Relinking file objects to avoid evil twins in ClearCase)) to please the system. Well, no more of that! We now have Git! Git is a Distributed Version Control System which is lightning fast and able to handle a project of any size. Git makes branching and merging really really easy and almost a no-op, and this gives you the freedom to experiment without loosing the ability to go back to an earlier decision point and branch out from there ((Who hasn't delayed a commit in subversion, only to find that the code needed to be reworked from what should have been a commit 8 hours earlier)). The most cool ((Actually, the most cool thing is that git is content based, and will track a method moved from one file to another while keeping the author meta data intact - I know, it's magic! )) thing about git, is that it works in much the same way that people interact with each other: via a web of trust. Git was initially created by Linus Torvalds of Linux fame, when Larry McVoy pulled the plug on BitKeeper back in 2005. In the beginning Git was a very complicated tool, but that has since changed with Junio Hamano as project lead and an veritable army of  developers who has polished Git into what it is today. My latest adventure with git has taken me to github ((I have moved all of my Open Source projects to Github a couple of days ago)), which is a really nice webinterface to git. Github helps facilitate the social process that exists between developers who share code with git or work on the same project using git. You can find out more about git on the git website or on the git mailing list ((Very high traffic and very high signal to noise ratio - lots of nice and knowledgeable people)). If you already are a casual git user, you might find gitready.com useful. There you'll find small tips about both simple and advanced uses of git - in nice bite sized chunks. If you are serious about development and source code management you'll switch to Git... All the cool kids have ;-)