System Design Space
Knowledge graphSettings

Updated: June 22, 2026 at 9:22 PM

Git: Two decades of Git - a conversation with creator Linus Torvalds

medium

The history of Git after 20 years: why Linus Torvalds created it in 10 days, and how distribution, speed, and history integrity made Git an industry standard.

The Git story matters because it shows how a version-control tool can become foundational infrastructure for collaborative engineering. Git has long stopped being only a source-code repository and became the layer through which branches, review, integration, and team cadence now flow.

The chapter ties Git's Linux kernel origins, distributed model, autonomous local work, and cheap branching to the reason it remained a living standard two decades later. It gives you a way to discuss not just Git itself, but the collaboration architecture built around it.

For engineering conversations, the material is useful because it moves workflows out of taste and into platform design. It helps explain how tool properties shape code review, release frequency, team scaling, and the absence of a central bottleneck in collaborative development.

Practical value of this chapter

Design in practice

Connect Git to distributed version control, repositories, source of truth decisions, and the delivery pipeline.

Decision quality

Evaluate the model through content-addressed storage, cryptographic hashes, lightweight branches, and regular merges.

Interview articulation

Structure answers as local clone, object graph, commit, branch, review, CI, and synchronization with the shared repository.

Trade-off framing

Make the cost of freedom explicit: teams need guardrails, protected branches, branch policies, and separate practices for large binary artifacts.

Two decades of Git: A conversation with creator Linus Torvalds

A look at Git's evolution: from a tool for Linux kernel development to one of the key industry standards for source code management.

Production:The Linux Foundation
Format:Interview / retrospective

Source

Two decades of Git

Interview with Linus Torvalds about the creation and evolution of Git.

Watch

Participants

Linus Torvalds - creator of Git and LinuxJunio C Hamano - Git maintainer since 2005

What is the film about?

In April 2005, Linus Torvalds made the first version of Git in about 10 days after moving away from BitKeeper in the Linux kernel development process. He was not just writing another version control system; he was building a tool that could survive Linux speed and scale.

By fall 2005, maintenance had gradually moved to Junio C Hamano. Git then grew into one of the key platforms for collaborative development: distributed version control, verifiable history, and cheap branches proved stable enough to survive changing interfaces, hosting platforms, and team processes.

Git Architecture Model

Git is easier to understand as a distributed system rather than as a bag of commands: the local clone stores history, objects are tied together by hashes, branches stay cheap, and GitOps extends the model into operations.

A Git clone becomes a complete working boundary

A developer can read history, create commits, switch branches, and compare changes without constantly calling a central server.

Workflow

1Clone repository

Remote repository -> local clone

git clone
2Change files

Working tree

edit
3Stage changes

Staging area

git add
4Commit snapshot

Local history

git commit
5Sync with remote

Remote repository

git push / git pull
Shared boundary

The remote repository is an exchange point

A server matters for collaboration, but it is not required for every local operation.

Copy

A clone contains history and refs

The local object database supports search, comparison, and commits without the network.

Change

The working tree is separate from history

Files can be changed, inspected, and delayed until the team has a meaningful commit.

Prepare

The staging area assembles the next commit

The team explicitly chooses which changes enter history and which remain local.

Exchange

Push and pull synchronize graphs

Collaboration becomes object exchange plus agreement on refs.

Timeline: how Git became an industry standard

April 2005

First Git version in about 10 days

Git appeared as an engineering response to a practical Linux kernel development problem after moving away from BitKeeper.

Summer-Fall 2005

Model stabilization and maintainer transition

Core concepts were stabilized, and primary maintenance gradually moved to Junio C Hamano.

2008

GitHub launch and a new collaboration layer

Git stopped being only a version control system and became the foundation for collaboration around pull requests.

2010s

Standardization of team processes

Branching and merging became industry defaults, with mature code review, CI, and trunk-based development practices.

2020s

Git as a foundation for platform approaches

Git moved beyond source code: GitOps, Infrastructure as Code, and declarative environment management became part of the operational norm.

Git key ideas

Distributed by default

Every Git clone contains a complete repository: history, objects, and refs. That gives developers local autonomy without constant dependence on a central server.

Speed as an architectural requirement

Git was designed for Linux kernel scale: patch, branch, and merge operations had to stay fast even across large histories.

History integrity at the object level

Git commits and objects are linked by cryptographic hashes. That makes history verifiable and reduces the risk of silent data corruption.

A stable core with evolution around it

Git's base model barely changed for decades. Interfaces, platforms, and workflows were free to evolve, while the plumbing and porcelain split kept the object model untouched.

Architectural decisions that survived 20 years

Content-addressed storage

Content-addressed storage links objects to the hash of their content, while commits form a directed history graph with explicit parents.

Why it still matters: History gets technical integrity, and operations remain predictable even in large repositories.

Lightweight branches and frequent merges

A Git branch is a lightweight pointer, and merge was designed as a routine daily operation rather than a rare event.

Why it still matters: Teams can decompose changes and integrate them more often without explosive coordination cost.

Distributed version control

Distributed version control means every developer works with local history and can exchange objects with other copies.

Why it still matters: Work does not stall when the server is unreachable: history, branches, and diffs stay available locally, and the network is only needed to exchange objects.

Separation of low-level core and user-facing commands

The plumbing and porcelain split kept a stable object model inside Git while allowing user experience to evolve on top.

Why it still matters: Interfaces, platforms, and team habits can evolve without destroying the fundamental repository model.

What does this mean in practice?

For engineers

  • A tool wins when it removes pain at real scale, not only when it looks good in a demo.
  • Local autonomy speeds teams up: developers can read history, prepare commits, and compare changes without waiting on the network.
  • Strong invariants, such as history integrity through content-addressed storage, pay off over long horizons.
  • An ecosystem stretches a tool into scenarios its authors never planned: hosting, review, and automation grew on top of Git only later.

For technical leaders

  • Give engineers room to solve fundamental problems, even when the first solution looks rough around the edges.
  • Evaluate tools by resilience, scale, and team speed, not by the fashion of a specific workflow.
  • An open development model reduces vendor lock-in and helps a platform survive changes in owners, interfaces, and processes.
  • Critical internal tools should be designed as products, not as temporary patches.

Where Git has practical limits

  • Git does not replace architectural decomposition: in a monorepo without module boundaries, problems scale together with the team.
  • Complex merge conflicts usually indicate high coupling in code and process, not a bad Git problem.
  • Teams need discipline and guardrails: branch policy, code review, protected branches, CI checks, and release rules.
  • As history and binary artifacts grow, maintenance practices matter: Git LFS, partial clone, replication, and storage policies.

References

The factual base for this chapter is the Linus Torvalds interview, the git-scm/Pro Git history, and GitHub's 20-year retrospective material. The conclusions about code review, CI/CD, trunk-based development, and platform engineering are editorial assessment layered on top of those historical sources.

Related chapters

Enable tracking in Settings