How Git Won the Version Control Wars

When Linus Torvalds posted “Kernel SCM saga..” to the kernel mailing list on April 6, 2005, the future of version control was wide open. The kernel had just lost free use of BitKeeper, and Torvalds was openly weighing alternatives, even pointing developers at monotone as “the most viable” option to study. Within the same few weeks, git, Mercurial, and other contenders all existed. None had obviously won.

Over the next decade git pulled away from the field. It became the kernel’s own tool, which gave it instant credibility, and its distributed model fit the way open source projects actually collaborated. Centralized systems like Subversion and even rival distributed tools like Mercurial steadily lost ground to it.

A large part of git’s victory was social rather than purely technical. GitHub, founded in the late 2000s, wrapped git in a hosting platform with a smooth contribution workflow, and made git the default substrate for open source collaboration. The story of that workflow is told separately in the entry on how the pull request changed open source.

By the early 2020s git’s dominance was overwhelming. The Stack Overflow Developer Survey, a large primary dataset of working developers, reported in 2021 that about 93 percent of all respondents used git for version control. Even Larry McVoy, whose BitKeeper had once been the kernel’s tool of choice, conceded the point when he open-sourced BitKeeper in 2016, telling LWN that git and GitHub “has all the market share.”