Git & Command Line Tutorial · Command Line Basics · Lesson 7 of 20
Git History & Versions
How Linus Torvalds wrote Git in a few weeks in 2005 to manage the Linux kernel, how it beat older version control systems, the milestones from 0.99 to 2.56 on one timeline, and how hosting services made it universal.
How Git started
Until 2005 the Linux kernel was developed with BitKeeper, a proprietary version control system whose free licence for open-source projects was withdrawn that April. Linus Torvalds decided to write his own. His goals: be very fast, fully distributed (every copy has the whole history), protect data against corruption, and handle a huge project with thousands of contributors.
He started in early April 2005; within days Git could track its own source code, and by June it managed the kernel. In July 2005 he handed maintenance to Junio Hamano, who has led the project ever since. The name, Torvalds joked, is British slang for an unpleasant person, "and I name all my projects after myself".
Timeline
- Git 2.56Current
- The latest feature release
- Git 2.45Historic
- The reftable reference storage format (
git init --ref-format=reftable)
- The reftable reference storage format (
- Git 2.28Historic
- The
init.defaultBranchsetting, letting new repositories start onmain
- The
- Git 2.23Historic
git switchandgit restore, splitting up the many jobs ofgit checkout
- Git 2.0Historic
- Safer defaults:
git pushpushes only the current branch,git addincludes removals
- Safer defaults:
- Git 1.5Historic
- A much friendlier command set for everyday use
- Git 1.0Historic
- The first 1.0 release
- Git 0.99Historic
- The first numbered release, as Junio Hamano took over maintenance
How Git took over
- Distributed by design: everyone has the full history, so committing, branching and viewing history work offline and instantly. Cheap branches made new workflows (feature branches, pull requests) practical.
- Hosting made it social: GitHub (2008), Bitbucket (2008) and GitLab (2011) added pull requests, code review and CI around Git. By the late 2010s Git had replaced Subversion, Mercurial and others for most teams.
- Still evolving: recent releases have focused on performance for huge repositories (partial and sparse clones, commit graphs, reftable) and on a long-planned move from SHA-1 to SHA-256 object names.
Which version should you use?
Use a recent release from your package manager or git-scm.com. Everyday commands
in this tutorial work on any Git from 2.28 onward; git switch and git restore need 2.23 or newer.
Official resources
Last reviewed 21 October 2026. Release and support dates come from the official release pages linked above.