Git: Named After Its Creator, Written in Ten Days
Zusammenfassung
Linus Torvalds wrote Git in April 2005 after the Linux kernel project lost access to the BitKeeper version control system. He built a working distributed version control system in ten days, named it “git” — British slang for an unpleasant, stupid person — and said: “I’m an egotistical bastard, and I name all my projects after myself. First Linux, now git.” Git has since become the dominant version control system in the world, used by essentially every software project that was started after 2010.
The BitKeeper Crisis
From 2002 to 2005, the Linux kernel project used BitKeeper, a proprietary distributed version control system provided free of charge to open-source projects by its developer, Larry McVoy. BitKeeper was technically ahead of anything available in open source — it supported distributed development across thousands of contributors with a workflow that centralized systems like CVS and Subversion could not replicate at the Linux kernel’s scale.
The arrangement ended in April 2005 when Andrew Tridgell, a Linux contributor (and primary author of Samba), wrote a program to reverse-engineer the BitKeeper protocol. McVoy interpreted this as a violation of the terms of the free-use license and withdrew access for the Linux project. Linus Torvalds was left without version control for the most complex open-source project in existence.
Ten Days
Torvalds’s response was to build a replacement himself. His design goals, stated in the Git documentation written immediately after the initial implementation, were explicit and unusual:
- CVS as the anti-example: “If in doubt, make the exact opposite decision.”
- Distributed development with no central repository requirement.
- Safeguards against corruption: every object content-addressed by its SHA-1 hash.
- High performance for large trees and large histories.
The first version of Git — capable of committing, branching, and merging — was written in approximately ten days. Torvalds committed the first version on April 7, 2005. By April 16, Git was managing the Linux kernel’s own development. The Linux 2.6.12-rc2 release, on April 16, was the first kernel release committed with Git.
Torvalds maintained Git through its first months, then handed development to Junio Hamano, who has been the primary maintainer since July 2005.
The Name
Torvalds chose “git” deliberately. He described the name selection in his initial announcement:
I’m an egotistical bastard, and I name all my projects after myself. First ‘Linux’, now ‘git’.
The UK slang “git” means an unpleasant, stupid, or contemptible person — roughly equivalent to American “jerk.” Torvalds’s choice reflected the same self-deprecating combativeness that characterized his public communication style throughout his career. The Git README file, written by Torvalds himself, offered multiple backronyms: “Global Information Tracker” when you’re in a good mood, “goddamn idiotic truckload of sh*t” when it breaks.
Git’s Dominance
The history of version control before Git — from RCS through CVS, Subversion, Perforce, and Mercurial — is covered in The Rise of Version Control. Git’s technical model (content-addressed storage, directed acyclic graph of commits, cheap local branching) was not entirely novel — Monotone and Darcs had explored similar ideas — but its implementation quality and the immediate endorsement of the Linux project gave it an adoption advantage that compounded over years.
GitHub, launched in 2008, added a social layer to Git hosting — forks, pull requests, public repositories — that accelerated adoption beyond kernel development into every kind of software project. By 2010, Git had displaced Subversion in new projects. By 2015, it was the assumed default for any software project. GitHub was acquired by Microsoft in 2018 for $7.5 billion — a measure of what the accidental combination of a crisis response, ten days of work, and a deliberately unflattering name had become.
📚 Sources
- Torvalds, Linus: Initial Git commit message and README — git.kernel.org, April 7, 2005
- Torvalds, Linus: LKML announcement of Git — Linux Kernel Mailing List, April 6, 2005
- Chacon, Scott & Straub, Ben: Pro Git, 2nd ed. (2014), Apress — Chapter 1: Getting Started
- Hamano, Junio C.: “Git’s History” — Git Wiki