Learning to Use Git(hub)

Friends had been telling me for ages that I should get on to Github, but I was ignoring it because it seemed like too much hassle. The prospect that I would have to deal with ‘proper’ version control at some point (as opposed to my totally awesome and certainly not open to abject failure ‘make backups with date stamps to tell them apart and store them on another drive’ system. Ahem.) remained fixed in the back of my mind. So I decided to make an account and see what all the fuss was about.

At the time, my desktop was only running Windows, so I downloaded their application and installed it. Oh dear. Weird flakey behaviour. It threw some gobbledegook errors at me during install and then simply refused to clone a repository, except when it then did. This seemed to be standard operating proceedure thereafter: you tell it to do something like clone, sync or issue a pull request and it tells you it can’t because of some sort of error. It doesn’t bother to tell you why, just that it can’t do it. If you keep clicking on it, though, eventually it will actually do what it’s been told. It was seemingly random. I couldn’t figure out any kind of pattern at all. I went to Github’s website to send them an email about this issue and wrote up a pretty comprehensive account of the program’s behaviour. Then, for good measure, I went to attach the log file it generated so they could see what’s wrong. And their web form wouldn’t allow me to attach a *.txt file! Who thought that was a good idea?

In the midst of this neurotic behaviour, I was also trying to figure out the Git work flow. Now, it’s really quite simple, but not the way the Github for Windows tutorial explains it. Oh no. The tutorial extended to cloning a repo, forking, and making a pull request. And that was it. Nothing on what any of these things are actually doing. Barely a mention of commits, and it’s finished. Since all I’d been shown was to fork and pull, that’s what I did. Yeah, it didn’t bother to explain that, in fact, you don’t have to fork the thing every time you want to make a change and then pull every time you’re done. Now I know this makes me look like an idiot in retrospect, but how the hell was I supposed to know this? I’ve never used this before. They never explained why these actions were being performed, just this is what you do. So I did it. And made a complete mess of my ‘Hello world!’ repo. So I deleted it and started again :)

If they’d taken just five minutes to go back over their tutorial, and ask themselves what a tutorial for a new user is meant to achieve, then I think they could have made it really useful. But they didn’t, so I had to learn it the hard way, like every other piece of software I’ve ever used. Sigh. Oh well.

Addendum: The problem with the Windows Github application was resolved by uninstalling it (and them manually removing all the extra files it left behind, because apparently I have nothing better to do than clean up other peoples’ mess) and reinstalling it. Still, it works now and I quite like it.

More addendum: It turns out that Github have an excellent series of well-written tutorials on their site covering everything you need to know across all platforms. Truly marvellous.

So, all in all, not a good start, but it’s all good now, and it is very useful. It’s certainly much better than my previous, er, ‘version control’ system :)