heroPhoto by Yancy Min on Unsplash

A non-technical introduction to git

Git is often explained in a way that is too complex for the non-technical people to grasp its usefulness or the purpose of adopting it in the business. In my opinion, it is such a simple (yet powerful) concept that anyone should be able to understand easily with some simple explaining.

Git is one of the pillars of software development today. It enables software engineers to build software one step at a time, and in times of need, it offers engineers the most powerful tool in the world - the ability to restart from a last known good state.

Git is a free and open-source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. - Git

Ok, so Git is a version control system for software development. But what is version control, and why is this useful?

Why is version control useful

To answer these questions, let's look at a very well established product that most people probably have heard of - Google Doc. When you are working on a Google Doc, did you ever notice this link on any non-empty Google Doc?

screenshot-2020-05-25-at-20.54.41-1

If we click on this link, then we are presented with all the edits that we have done (see screenshot below).

screenshot-2020-05-25-at-20.57.32-1

Notice the right-hand panel that says "version history". Under it, it shows each edit we ever made in this document as a separate version. It is handy for a few different reasons:

  • All changes are recorded in a time series, from oldest to newest. With this feature, we can go back all the way to start of the document when it was blank. Think of it as the regular "undo" action on steroids.
  • We can browse and replay changes like it was a movie, which is extremely useful when we would like to investigate something at a later point. e.g. for understanding why a paragraph changed to the way it is.
  • It allows us to track who edited what and when. If there is an issue, then we will know who to walk to about it.

Git is doing the same thing for software engineers. It provides all of the above benefits to software development and more.

More Reading

If you are interested, here's a brief history of Git.