Version control is to developers what a log book is to a mechanic. You don’t *need* it to make something work, but you know you can and should be using it for everything as it will ultimately save time, expense, give you peace of mind and make life easier in the long run for everyone connected with the project…
Why we need Git
You’ve a choice of flying in two airplanes. Once has a full service history where all parts are replaced on or before the recommended change date… the other is flown until it won’t fly i.e. stuff is only replaced when it breaks. Which airplane would you prefer to fly in?
The answer is obvious. The second airplane may have lower maintenance costs in the short term and be able to turn around quicker and therefore produce more profit, but it’s a reckless strategy in the long term. It will also be a more costly strategy in the long run because when something does break, it’ll probably kill people in the process and put the airplane owner out of business.
It’s the exact same with web development. If you don’t use version control, you’re putting lives at risk. Well not quite, but that’s the kind of attitude that should be drilled in to all web developers. It’s that important. If you fail to document changes, it increases the time and cost associated with future work. It also pisses other developers off… just like it would piss other mechanics off if absolutely no replacements and inspections were documented.
The only way you can be sure everything is working is to inspect it, test it and make sure everything adds up on paper and hasn’t been overlooked. Collaboration between multiple people is to be expected in any project, therefore documentation has to be clear and have someone responsible for it. Think of Git as mechanic’s log book. It documents absolutely all changes. Every line of code, who changed it, when it was changed and why. Git isn’t the only type of version control out there, but it’s probably the most favoured.
Why people don’t use Git
Although git is incredibly useful, lots of people struggle to get to grips with it because it’s most commonly used in a command line interface. Old school stuff. Typing commands in to the dreaded black box.
It’s not actually as intimidating as it may seem. You’ll only need to use about a dozen commands in total to accomplish 99% of things in git and could get by simply by copying / paste from a text file. I love git, i use it all the time but i always find it a major pain in the ass working with command line stuff. It’s slow, it’s boring and it involves a lot of typing, memorizing commands and moving back and forth between directories…
Ungit to the rescue
A few months ago Fredrik Noren released ungit which wraps git functionality in a pretty GUI, getting rid of all of that caveman command line stuff. I’ve been using it since i first discovered it and instantly recognised it’s value. It not only speeds up the whole commit process but it helps you to visualise things and see at a glance what branch you’re working in and when your last commit was. Things that you can do with some commands but why bother when you can do it all in a pretty GUI.
Ungit still requires a bit of knowledge to set up but if you’re using or trying to use git, it’s well worth experimenting with. It claims to be “The easiest way to use git. On any platform.” and i have to agree.
It might just save lives.