Github Logo - Octocat

Git for ugly and stupid people; a git tutorial for subversion users

Github Logo - Octocat

Why Git for Ugly and Stupid people then? What’s this got to do with Subversion?

According to Linus Torvalds (author of git and some OS called ‘Linux’ or something) you are ugly and stupid if you don’t use git. Really, he said that!

OK so I’m ugly and stupid, now what?

Where I work we are doing what many software teams are doing and slowly making the transition from subversion to git. The switch is motivated by the desire to move to an SCM that is distributed, powerful and has a good SaaS provider we can utilise (GitHub in our case). Git was the obvious choice and we started trialling it just over a year ago. Since then we’ve forced all developers working on ‘new’ stuff to use GitHub instead of our co-located subversion servers.

The initial switch was far from smooth and to be honest none of use really knew what we were doing! After a bit of trial and error we eventually learnt enough to be able to cobble together a decent workflow that we’ve been evolving ever since. We’re now getting to the sort of critical mass of developers using git that it is no longer practical to mentor everybody to get them up to speed myself. So I took the plunge and started writing some docs to go in our new starter guide that explains what the hell git it, how it works and specifically how we use it day to day to get stuff done. Because the guide is aimed at developers moving from subversion it uses subversion as a reference point and tries to illustrate how git differs.

I’ll be honest, the guide is quite long but it very much demonstrates the key ‘eureka’ moments that I had while learning git. Those times where something suddenly clicks in your head and whole swathes of head scratching moments are suddenly swept aside in a wave of clarity! The guide is basically what I would have wanted to read in order to understand what I was actually doing when I was fiddling around with git commands a year ago.

Because it is so long I’ve split it into smaller, more digestible parts and I’m putting it up here for the wider world to see. Yes, I know, there are hundreds of git guides out there but one more can’t hurt surely! 😉 Here goes…

Next section – Distribution and Commits