Git (/É¡Éªt/) is a distributed revision control system with an emphasis on speed, data integrity, and support for distributed, non-linear workflows. Got it? No? Okay.
What is git?
Have you got some folder like this, perhaps on your desktop or in your documents directory?
This, in essence, is what we call version control or source control. You have something important and you want to make changes but you don't want to lose its current state. So you save various versions of the file, and perhaps even a little text file with a list of the changes you've made.
This is where git comes in. At it's very base, git is just a better way of managing this. It allows you to make changes to a file and commit these changes with a message about the changes you've made. Later on you can look back through this log of changes and roll back to whatever point in history you desire.
But wait, git can do more than that. Git can also allow you to collaborate with other people, allow them to make changes and add to the history log with their commit messages. Do you remember all of those folders that looked something like the one above, but they sat on some network drive where all of your colleagues could make edits? There was always that moment when you lost a document or wondered who made a particular change. With git, you could know straight away. No more wondering when something changed or wishing you could get back to a previous version, doing this simply becomes a part of your every day workflow.
Right, but where could I use it?
There are many different places you could use git, here are some I've come up with but I'm sure you have many more ideas already.
- A living, and evolving company handbook for new and current team members.
- Lesson plans, if you're a teacher then I'm sure you'll use and adapt them over and over through out time.
- Team wiki's, a font of all information for your team where you can dump everything that should be common knowledge. No more questions about how to order more paper and pens for the office!
- Collaborating with a colleague on some legal documents for a client? Now you have a history of each change, with a message about the reasons and intentions of that change. Something that could be vital to a client later on.
- Writing your dissertation, now that paragraph you scrapped can come back to life in a split second.
Git is a fantastic tool, one I recommend to everyone. The ability to version control files is one that many people don't even know exists, and yet it's something that software engineers have been using for many years. It's saved my hide a number of times, and now I even version control a wiki with useful information about my daily life. Things like landlord, plumber and electric provider details are all noted down and a history is kept forever!