What even is Git?

What even is Git?

A quick look at the most popular version-control software in the world

2020, Apr 10    

Welcome back to What Even Is?, the series where I break down common programming concepts I keep encountering but never fully understand, until now! Today we will be looking at the version control tool we all know and love: Git. Git is by far the most popular version-control software in the world, and so most developers run into it early on in their learning. Additionally, a recent survey found that around 80% of marketing managers have heard of Git, but less than half could describe what it is. So, in this article I will be explaining what Git is, and what it is used for.

Table of Contents

Git Defined

“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

So, what does this mean? Git is designed keep track of all changes to documents, including the author and time of change, allowing multiple developers to collaborate on the same project without overriding each other’s work. This is called version control. This also allows developers to retrieve and run different version of the same software, making it much easier to determine where and how bugs arise. Git is not the first version control software. In fact, Git was inspired by another version control system, BitKeeper.

Origin Story

Why was Git created if there was already a major version control software available? The creator of BitKeeper decided to disallow free use of the product due to fears of other developers reverse engineering it. Ironically, this lead Linus Torvalds, the creator of Linux, to create Git when he couldn’t find any other free version-control software that satisfied his needs.

Usage

Today, developers often use Git to backup all of their files online, using a service such as GitHub. This aids in collaboration, open-source development, and general learning. I could go to GitHub, make a clone(copy) of someone else’s repository(where their code, and all of its versions, is saved), and start working on it on my computer! I could even create my own branch, which is essentially another copy of the codebase where changes I make only affect that branch, and make some changes. If the changes are good, I can submit them for review by the owner of the original repository. Finally, if the owner likes the changes, they can merge them into the master branch, and they will officially be a part of the main code base. In this way, GitHub is simultaneously a publishing tool, a collaboration tool, a version control tool, and even a social network. These many functionalities are what make Git and GitHub such a huge part of the developer ecosystem today.

Infographic

Here is a great infographic made by CoreDNA which helps visualize Git and GitHub. Infographic explaining Git and GitHub


Thank you so much for reading! I hope you found this helpful, and now have a greater understand of Git and its uses.

References