Git

GitHub page showing Twitter's open-source codeAlthough Git and GitHub are often confused for each other, GitHub uses Git as the basis of its code-sharing repositories.

Git, open-source distributed version control system (DVCS) created by Linux developer Linus Torvalds in 2005. As of 2024 Git is the most widely used version control system and is used by both individuals and companies including Microsoft, Netflix, and Google.

GitHub and GitLab
  • GitHub: cloud-based service owned by Microsoft, founded in 2008
  • GitLab: GitHub alternative with a free version, founded in 2011

Both GitHub and GitLab function as software code repositories that use Git to help developers collaborate more effectively.

When developers write code, they generally rely on a DVCS, which functions as a sort of “shared digital diary” for code, to manage and track changes. When using Git, developers can pull source code into their personal “branch,” which is a copy of the main repository—where all changes to source code are tracked. Once a developer creates the branch, they can make necessary changes, and then “commit” the code. This means that developers can either merge their changes into the repository or keep the changes in a separate file. A DVCS allows developers to effectively collaborate by merging their committed code into the main repository without conflicts or unknowingly overwriting one another’s work.

In the early 1990s, when Linux was still a new technology, developers worked without a DVCS. When developers posted changes to the open-source operating system, Torvalds would manually apply the changes to his source code and eventually release an updated version. Changes were marked only with a “diff” tag in the code. The concurrent version systems (CVS) available for version control at the time struggled to categorize larger code changes and were susceptible to bugs, and Torvalds disliked other open-source options. In 2002 Torvalds and Linux introduced and began to use the version control system BitKeeper—a proprietary DVCS owned by BitMover. Torvalds, who had not originally wanted to rely on a version control system, said BitKeeper “changed the way [he] viewed source control.”

“I had performance requirements that were not even remotely satisfied by what was available, and I also worried about integrity of the code and the whole workflow, so I ended up just deciding to write my own.” —Torvalds in a 2015 Linux Foundation interview

However, many Linux developers were devoted to the philosophy behind open source, which rejected secrecy in favor of collaborative, open sharing in the programming world. Many developers voiced their frustration to Torvalds, and some refused to work with BitKeeper at all. The breaking point occurred when Torvalds’s collaborator Andrew Tridgell reverse-engineered BitKeeper protocol to such a degree in an attempt to bypass BitMover’s usage rules that mediation with BitMover was required. “I decided that I can’t continue using BK, but that I really didn’t want to go back to the bad old pre-BK days,” Torvalds recalled in a 2015 interview with the Linux Foundation. Thus the idea of Git was born.

Git’s initial framework came together in a little over a week. The program handled version control for Linux projects but soon expanded to other collaborative and open-source projects. Git has occasionally been criticized for its complicated user interface, with even prolific developer Andrew Morton saying that Git is “expressly designed to make you feel less intelligent than you thought you were.” Still, Torvalds maintains that such user experience differences from other DVCS and CVS products are necessary for Git to function. In 2023 Stack Overflow, a coding forum site, reported that its survey of more than 73,000 software developers had found that 93 percent of respondents were using Git as their primary version control system.

Meg Matthias