Any post about Git pretty much mandates the use of some lame pun in the title, and this blog entry is no exception. For those of you who are as-of-yet unfamiliar with it, Git is a distributed version control system created by Linus Torvalds. It’s been around and usable for about a year now, but I’d only been peripherally aware of it until recently.
In the past I’ve just used it to check out and occaisionally toy with the latest Rubinius sources but now that the Offtrac project is using it, it finally looks like I’m going to have to start familiarizing myself with it beyond installation and cloning a remote repository. If that sounds negative it isn’t meant to be; I enjoy being forced to learn new things every once in a while. Srsly.
[To be honest I’m still relatively happy with Subversion, but hey, when I started using Subversion I was still at least relatively happy with CVS too. No wait, scratch that, I hated CVS.]
Anyway, for those of you out there like me who are just getting acquainted with Git and particularly those who are stumbling over the implications of the distributed part of distributed version control, Carl Worth has written a useful getting started guide that you should definitely check out. Of course there’s the official user guide too.
In practice, normal usage really isn’t as different as it seems, and the concept of a distributed repository is a truly powerful one. Everyone has commit access to their own local branch, which means most operations are fast, and the centralized who-gets-commit-rights question becomes a total non-issue. That’s very very cool. Oh, and no .svn folders littered in every folder is another nicety. The jury’s still out for me as of right now, which is to say I’m not rushing to switch all my existing Subversion projects over just yet. But I have to say, I’m very intrigued so far.