Over the last few months I’ve switched from Subversion and Bazaar to Git. I’m using Git on a daily basis now and I’m much happier with it than I was when using Subversion. In this post I’ll try to explain why and provide some useful links.
You can work offline
How cool is that? You can clone a repository (which is similar to doing a “checkout”), go offline and then change what you want, commit, merge, branch and whatever. When you go back online you can push your commits to the origin server - if you want.
When using Git you don’t work on a “working copy” of the last revision (as you do with Subversion) - using “git clone URL” you clone the *entire repository*: all commits, merges, branches, everything.
It’s fast as hell
Git is fast. Really fast. Doing commits, branches, merging and even cloning a remote repository: everything is (way) faster than Subversion. I didn’t do any benchmarks on my own, but it’s what I can see.
It will make you want to try new things
Branching and merging in Git are trivial tasks. In Subversion these operations are kind of troublesome; you need to interact with the remote copy, merging is not so easy and you need write access to the remote repository. This - the need of write access - is actually the main problem with it.
With Git I can clone a remote repository, create branches, try things out and never ever send anything back to the origin repository. I can do pretty much everything without getting permission, without bureaucracy.
Github
Github is a really cool social network for programmers. It allows you to share and manage Git repositories in a very easy way; with a few clicks one person can fork, say, httparty, branch, merge and do whatever with it.
Also it allows you to make “pull requests” (a way to poke someone and let them know you’ve got some code they may want) and get your code on the main repository.
Some useful links about Git
So this is why I’m using Git. The following links are tutorials and explanations about how and why Git works and more reasons to use it. Enjoy.
- The Thing About Git
- Using Git within a project (forking around)
- New to Git?
- Git Internals (Highly Recommended!)
