A coworker of mine has been looking into the Git source code management system. He showed me how Git can integrate with Subversion. It looked pretty cool so I decided to give it a try and now I’m hooked.
Git was created by Linus Torvalds, the creator of the Linux kernel. He gave a presentation about Git at Google that you can watch: http://www.youtube.com/watch?v=4XpnKHJAok8. I don’t agree with everything that Linus is says about Git. Linus certainly makes no apologies for being so opinionated either.
The key differentiator between Git and something like Subversion and CVS is that Git is a distributed version control system. There’s no central repository. If I want someone else’s changes, I have to pull those changes from their repository. Fortunately, Git integrates really well subversion so you can get the best of both world.
Git is extremely fast. Changing branches, committing, viewing history, and just about everything else I’ve tried with Git (except for synching with Subversion) is near instantaneous. This alone makes Git worth the switch.
Git copies the entire repository to your local workstation. This is one of the reasons it is so fast. This also makes it possible to create branches and commit changes to my local repository that don’t get committed to the central subversion repository. This allows me to make incremental changes locally and revert back to previous versions without affect other developers on the same project. It also makes it possible to create a local branch and even work on that branch with other developers, without affect the central repository.
One of the things that I really like about Git is the graphical tools for it. I can visualize where branches occurred and where merges occurred. This makes it very easy to see what the difference between different branches really is. This is an extremely powerful feature.
I’m currently using Git with ADBCJ and Apache MINA and I’ll start using it with my work projects shortly. The only thing I miss is good Eclipse and IntelliJ integration but I’m comfortable enough with the command line that it’s not a big deal at all.
RSS feed for comments on this post · TrackBack URI
Leave a reply