A few notes on Git

I have been using git for a while now on my own projects; largely using github to host them. ( Having lost vpn access to my old firm's svn repository :) )

I recently started to learn more about the system having stumbled across this excellent - and free - online book. It is highly recommended reading for anyone looking to get into, or learn more about git.

Git offers quite a few benefits over centrally managed version control systems. I would definitely recommend checking out the book linked above for a more comprehensive overview, but those features I have found most useful are:

  • Faster. Most operations occur locally, so it is a lot faster to use for most operations.
  • Branching. The branching system is far superior, allowing you to easily switch between different branches of work with very little effort or overhead.
  • Local. I can make commits, branches and do what I like without a network connection. Then once I have one I can push my work back to a remote.

There are quite a few other benefits, but these are the ones that have stood out for me over the last few months. On the downside, compared to svn for example, it does seem a little more complicated and there aren't quite as many good gui tools around. Here are a few worth having a look at:

As a side note, this guy is doing some interesting stuff with git at the moment. I particularly like the idea of his ShowOff project for presentations.