Git
In the middle of the Grails project I am working right now, I decided to try Git. Well, I decided to try also Emacs, after more than 10 years of using Vi. Man, that is like trying to rewire your brain. Amazing how the Vi commands are hardwired to my fingers muscles. In the end I succeded, although it will be a long time before I settle for one of them. Right now I am using Emacs for development and Vi for Linux administration.
But I digress, this post is about Git.
In short, Git rocks! Or more precisely distributed version control systems rocks. I haven’t used bazaar, nor mercurial or any other DVCS but the same applies to them I suppose. I will talk about Git.
Again, Git rocks, it is a different way of working in everyday’s chores as a programmer. And the blessing of local commits already made me forget Subversion. But more than that, the concept of cheap and fast branching it is so amazing that you will measure every other SCM branch capabilities using Git as reference.
The internet is full of tutorials about Git, but what I think that is the best explained intro (and advanced too) guide to git was the Pro Git book. So if you’re considering to try Git, start right there as this book will make you a Git user in a couple hours.
I use to have all my repositories (23 right at the time) in Subversion. I migrated them all in a day to Git and I am more than happy with this change. In the project I am right now there is no possibility to switch to Git so I have to use git-svn to connect to Subversion and keep using Git on my machine. But even so, it gives you a real sense of security to commit always locally and then, when everything is tested, push to the central server.
So, try Git, and use the Pro Git book to learn it the right way.