Origin Story of Git

What are Git and Github and the origin of Git.

Many beginner programmers often confuse Git with GitHub. Sure, one is based on the other but they are two very different tools, developed by two very different organizations. And the best part is the origin of Git.

via GIPHY

I was confused about what this blog should be. Should it be about the history of Git and GitHub or the difference between them? But I realized that one cannot be without the other.

What is Git?

Git is a distributed version control system. It allows users to track changes in codebases. It is very similar to when we are writing an essay, we first make a rough draft, and name it the "first draft". The first draft is always incomplete and there has to be iterations done. So, we update it and name it as "final". But we realize that the final copy still needs changes. So, we make a new copy and make it "final 2". And then when we show it to our professor, they suggest some changes (because they have to, ugh). After making the professor-suggested changes, we make another copy and name it "finally final" and hope this is actually the final copy.

via GIPHY

We can call this a version control since we have different versions of our essay with us. In case, we want to go back to an earlier version, we can do that. But this is a tedious process and Git is so much better than this. Git has a tree-branched structure. It has repositories that track any changes we are making and holds them in its history. Users can go back and take a look at it at any time.

Now that we understand what Git is, understanding Github is so much simpler now.

Git's favorite child aka Github

The heading is a bit misleading, I agree. But GitHub is the most used version control software so maybe it's OUR favorite.

Just like Git helps us manage different versions of our code, GitHub is the platform that hosts everything for us. What's special about Github is that it gives us some collaboration tools to manage and distribute our work.

There are many popular alternatives to Github, some other commonly used ones are GitLab and BitBucket. There are many alternatives to Git too. The most popular one is Merucrial. BitBucket actually adopts the usage of both Git and Mercurial.

Okay but what is the origin story of Git?

If you have been following my blog or following me on Instagram, you would know how I have been talking about Linux a lot. Linux is an open-source kernel which is the basis of a lot of Linux-based distributions. Focus on the open-source part.

Now, Linux was developed by Linus Torvalds, a visionary guy who believed software should be accessible for everyone(also the person Linux is named after). He was working on Linux in early 2000s and was using a version control system at the time named BitBucket. In 2005, there was some conflict and BitBucket revoked its free license for Linux. Linus, unwilling to pay for BitKeeper decided to make his own version control system so that he can use it for Linux and still make it open source. This tool was named Git, and it surpassed BitKeeper, gaining widespread popularity, a status it maintains even today.

via GIPHY

I loved the history of Git when I first heard about it, as it epitomizes the essence of software development, illustrating how necessity can produce two formidable tools.