You are currently viewing Version control

Version control

Based on my experience this week, I find the name of Git a touch ironic.

The fundamentals of version control make absolute sense and I can only imagine some of the horrors that may have occurred in the days prior to good version control systems. The ability to go back to a previous version when you may or may not have made a real hash of things, would be a useful feature in the real world.

In many ways I am actually pretty grateful that I’m learning programming at this stage of history as it sounds pretty bleak not so long ago for many reasons.

As part of my introduction to Git and Github has also been an introduction to the Terminal on my laptop, that enigmatic thing that only those ‘computer folk’ use. This in itself has also been an interesting experience as it’s been the proverbial ‘other half’ to this particular learning experience. 

Using Github and the Terminal has felt a little like making a mille fuille whilst wearing boxing gloves and a bag over my head (and not knowing what a mille fuille is). Not only that but whilst wearing the boxing gloves and having a bag over my head, all instructions have been shouted at me from a chap with a broad colloquial accent who’s just got back from the dentist and the anaesthetic hasn’t worn off yet.

It’s felt tough.

Without the visual cues of a GUI, every input into the terminal feels like some obscure leap of faith that the intended thing will happen. When it doesn’t I feel about as empowered as this cow to deal with it.

A highland cow in the Peak District on a frosty morning

I’m over it now and the fundamentals have sunk in, but there were a few blips along the way and a few instances where a 10 second action took me 3 hours as I slowly but surely did the Git/terminal equivalent of a two year old let loose on all of the ingredients to make fresh patisserie.

I’ve now understood my mistakes and have repeated certain process a good number of times so I think I’m understanding it at a novice level and can perform the basic repertoire of steps to create repos, clone, branch, push, commit etc.

Thankfully this section is done for now, so it’s time to trot onto the next thing to struggle with.