The Git software control system is widely used by software developers to track changes in source code. Git was created in 2005 by Linus Torvalds for Linux kernel development, and it is now used by developers and distributed teams around the world to contribute to open source projects. In this Resource article, we’ll take a brief look at the history of Git and its rise to prominence.
The Chronicles of Linux
To understand the emergence and significance of Git, we first need to understand the state of version control in Linux at the time. Zack Brown, long-time chronicler of the Linux kernel, wrote:
Originally, Linus Torvalds used no revision control at all. Kernel contributors would post their patches to the Usenet group, and later to the mailing list, and Linus would apply them to his own source tree. Eventually, Linus would put out a new release of the whole tree, with no division between any of the patches. The only way to examine the history of his process was as a giant diff between two full releases.
Various version control systems (including CVS and Subversion) were available, but, according to Brown, Torvalds didn’t like them. As Linux developers became more unhappy with the lack of a version control system, Torvalds eventually chose closed-source BitKeeper to do the job. The decision to cast proprietary software in a crucial role within the most important open source project in history was not only controversial but also soon became unsustainable due to a falling out with BitKeeper’s developer. In 2005, when BitKeeper could no longer be used for Linux kernel development, a new solution was urgently required.
At this point, Brown noted, something remarkable happened:
For the first time since its inception in 1991, Linus stopped work entirely on the Linux kernel. Since none of the existing tools could do what he needed, he decided to write his own.
Within a matter of days, Torvalds had produced the Git revision control system. “Within weeks,” Brown wrote, “it was ready to host Linux kernel development.” Once Git was fully functional, Torvalds turned maintainership over to Junio C. Hamano and returned to Linux development.
Command and Control
Over the next several years, Git gradually rose in prominence, as described by Lawrence C Hecht in an article at The New Stack:
Git surpassed “open source” search queries in March 2011. Two months later, GitHub moved past Sourceforge in terms of commits made in the first half of that year. 2012 saw Andreessen Horowitz make a big investment. Over the next seven years, GitHub code repositories went from 27% to 70% of the open source projected indexed in the Synopsys/Black Duck Open Hub. By the time 2014 arrived, Git surpassed SVN [Subversion] as the primary code management tool in Eclipse’s annual survey.
Now, according to the 2019 State of the Octoverse, there are more than 40 million developers on GitHub alone. In a podcast from The New Stack marking the 15th anniversary of Git in 2020, GitHub’s CTO Jason Warner mentioned one reason for Git’s dominance. “Branching and Git is really, really important to where we were 15 years ago, and cheap, easy branches revolutionized the way people collaborated on software,” Warner said. “And we take that for granted today — but 15 years ago, there was nothing like it.”
As Torvalds himself said in an interview with The Linux Foundation:
You can do a lot of things with git, and many of the rules of what you *should* do are not so much technical limitations but are about what works well when working together with other people.… Generally, the best way to learn git is probably to first only do very basic things and not even look at some of the things you can do until you are familiar and confident about the basics.
A recent FOSSlife article by John SJ Anderson covers those basics and can help you get started using Git. Check out these other resources for more information:
- A Git Origin Story by Zack Brown
- Pro Git - This resource book by Scott Chacon and Ben Straub is available online and has been fully translated into 13 languages.
- Git videos
- The History of Git: The Road to Domination in Software Version Control