For software engineers/developers, Git has become a common tool for controlling versions and collaborating in a team. To get into the software industry knowledge of git is now a must-have.
There are hundreds of tutorials for learning Git, But today’s tea will be about the history and the uprising of Git.
Let’s get Started-
The creator of Git :
The mastermind behind Git was Linus Torvalds. You may have heard this name before because this genius was the lead developer behind the Linux kernel. However, as of 2006, only 2% of the Linux kernel code is written by him. He still has one of the highest percentages even with thousands of others contributing. However, he stated in 2012 that his contribution consisted primarily of combining other people’s work and very little programming. He still has the last say over what new code is added to the Linux kernel’s standard version.
The era before Git:
Did you ever think about what it was like to code before Git? When I started coding, obviously I didn’t know about Git and I managed my code by copying each time into a new folder whenever I needed to test something and didn’t want to lose my previous stable version. It was a hassle and a lot of work.
But this was my lack of knowledge, is there anything else before?
Yes, There were, Some of them are –
Source Code Control System (SCCS): One of the earliest tools for Version Control System (VCS) was SCCS, which was developed in the 1970s. It was mostly utilized on Unix systems and provided basic version tracking.
Revision Control System (RCS): Branching and merging were two capabilities that RCS added to SCCS when it was first introduced in the early 1980s. Still, it was restricted to single files and did not facilitate collaborative operations.
Concurrent Versions System (CVS): When CVS was released in the late 1980s, it allowed for cooperation and concurrent development across RCS. Despite its ubiquity, CVS has performance concerns and is prone to corruption in large projects.
Apache Subversion (SVN): SVN was developed in 2000 to replace CVS and addressed many of the issues with the former, providing better performance and dependability. However, in distributed and large-scale development settings, SVN’s centralized architecture presented challenges.
The Genesis :
Linux Kernal was a fairly large project which was maintained through patch and archive files till 2002. In 2002, the Linux kernel project began using a proprietary DVCS called BitKeeper.However, the free status was removed because of a disagreement between the BitKeeper community and the firm. Necessity is the mother of invention, and this episode opened the way for the construction of a new system.
Linus Torvalds committed the first code to Git on April 7, 2005. It was just a simple README file. There is a saying that Git was created in 10 days but that’s a little misleading. Git was created in 10 days in the same way that Apple was created in a garage in a month or the way that Facebook was created in a dorm in one night. Git v0.0.1 might have been created in 10 days but a more stable and cleaned version took time.
Finally, on December 21, 2005, Git was released to be Fast, with a Simple design, to give Strong support for non-linear development and be Fully distributed to handle large projects.
The word “Git”:
“Linus Torvalds gave the name ‘git’ when he wrote the initial version. He referred to the tool as “the stupid content tracker” and said that its name was a random three-letter combination that could be pronounced in several ways and wasn’t utilized by any widely used UNIX commands. It could or might not matter because it is a mispronunciation of “get.” Foolish. Reprehensible and abhorrent. Easy. Choose something from the slang vocabulary.
In British slang, “git” refers to someone foolish or deplorable. Foolish? Careless? Of course! However, it’s another evidence of Torvald’s character and the loosely organized, community-driven nature of open-source software.
“I’m an egotistical bastard, so I name all my projects after myself. First Linux, now Git.”— Linus Torvalds
The recipe of Git:
The majority of Git is written in C. Shell scripting is also used by it for several features and activities. Furthermore, several components of Git are implemented in languages, like Python for specific tools and utilities and Perl for various scripts. Still, most of Git’s essential functionality is written in C.
Git’s Competitors:
Are there any other alternatives to Git? Yes, there are.
Here are the top 10 alternatives to Git recently reviewed by G2 Community
- Azure DevOps Server.
- Helix Core.
- AWS CodeCommit.
- Subversion.
- Rational ClearCase.
- Plastic SCM.
- Mercurial.
- OpenText AccuRev.
Git’s Journey :
After a lot of contribution and refinement, a decade later on June 1, 2014 version 2.0 was released. Still, Thousands of developers have been working on it. Now another brilliant mind Junio Hamano is maintaining Git. Git began to fly with the help of multiple great hosting providers like Github, GitLab, and Bitbucket.
So, whether you’re using git to push your next big feature or troubleshooting with git blame, remember the history of this tool and maybe tell others about it. Since every developer using Git now is, in a sense, a part of its continuous story.
‘Well, it was designed for our workflow, so that is part of it. I’ve already mentioned the whole “distributed” part many times, but it bears repeating. But it was also designed to be efficient enough for a biggish project like Linux, and it was designed to do things that people considered “hard” before git – because those are the things *I* do it every day.’
— Linus Torvalds
References :
- https://en.wikipedia.org/wiki/Linus_Torvalds
- https://www.geeksforgeeks.org/history-of-git
- https://git-scm.com/book/en/v2/Getting-Started-A-Short-History-of-Git
- https://community.appsmith.com/content/blog/evolution-git-dive-tech-history
- https://www.w3schools.com/git/git_intro.asp?remote=github
- https://www.g2.com/products/git/competitors/alternatives