← all lessons
Origins & Philosophy · lesson 1 of 18

The Birth of Git

A Crisis Creates a Revolution

Why it matters

Every tool has a story. Git was born from a crisis—and that crisis shaped everything about how Git works today. Understanding the ‘why’ helps you understand the ‘how’.

Key concepts

The idea

The BitKeeper Crisis of 2005

In 2002, the Linux kernel—the largest open-source project in the world—was managed using BitKeeper, a proprietary version control system. It was fast, distributed, and worked beautifully for Linux’s thousands of contributors.

Until April 2005.

BitMover, the company behind BitKeeper, revoked the free license after a developer allegedly reverse-engineered their protocol. Suddenly, thousands of Linux developers were stranded. The kernel’s development ground to a halt.

Linus’s Three Choices

Linus Torvalds faced three options:

1. Pay for BitKeeper Rejected. Open source philosophy demanded open tools.

2. Switch to CVS or Subversion Rejected. “CVS is not even worth talking about. If you like it, you are demented.” Subversion was “designed to be a better CVS” which meant it inherited CVS’s fundamental flaws.

3. Build something better ✓ Chosen. In just 10 days, Linus wrote the first version of Git.

The Design Philosophy

Git wasn’t designed to be user-friendly. It was designed to be:

The Name

Linus named it “Git”—British slang for an unpleasant person. As he explained: “I’m an egotistical bastard, and I name all my projects after myself. First Linux, now Git.”

(He later suggested it could stand for “Global Information Tracker” if you’re feeling generous.)

Walkthrough

Timeline

DateEvent
2002Linux adopts BitKeeper
April 3, 2005BitKeeper license revoked
April 7, 2005Linus starts writing Git
April 16, 2005Git manages Linux kernel (10 days!)
June 16, 2005Linux 2.6.12 released via Git
December 2005Git 1.0 released

Design Goals (from Linus)

Linus Torvalds, creator of Git
Linus Torvalds wrote the first working version of Git in roughly ten days in April 2005.
  1. Speed - Subsecond operations for everything
  2. Simple design - Data model is elegant
  3. Strong support for parallel development - Thousands of branches
  4. Fully distributed - No central server required
  5. Handle large projects efficiently - Linux has millions of lines

Git’s Core Insight

Git was built to version the Linux kernel — Tux's home — and now versions nearly everything.

Previous systems tracked changes (deltas). Git tracks snapshots.

CVS/SVN: Δ1 → Δ2 → Δ3 → Δ4
Git:     S1   S2   S3   S4  (full snapshots, compressed)

This makes branching and merging trivial—you’re comparing complete states, not reconstructing history.

Key takeaways

Going deeper

The Linux Development Model: Linux has a ‘lieutenant’ system. Linus doesn’t review every patch—subsystem maintainers do. Git’s distributed model perfectly supports this hierarchy. Each maintainer has their own tree, pulls from contributors, and Linus pulls from maintainers.

Impact: Today, Git powers 90%+ of software development. GitHub has 100M+ developers. Git’s success influenced distributed systems thinking across the industry.