History and Evolution of Git

Chapter 1: History and Evolution of Git

As with many great things in life, Git began with a bit of creative destruction and fiery controversy.

The Linux Kernel Crisis

The Linux kernel is an open-source software project of fairly large scope. For most of the lifetime of the Linux kernel maintenance (1991–2002), changes to the software were passed around as patches and archived files. In 2002, the project started using a proprietary DVCS called BitKeeper.

In 2005, the relationship between the community that developed the Linux kernel and the commercial company that developed BitKeeper broke down, and the tool’s free-of-charge status was revoked. This prompted the Linux development community (and in particular Linus Torvalds, the creator of Linux) to develop their own tool based on some of the lessons they learned while using BitKeeper.

The Birth of Git

Linus Torvalds set out with some very specific goals for the new system:

  1. Speed: It had to be fast enough to handle the massive Linux kernel codebase.
  2. Simple Design: The underlying data model should be simple and elegant.
  3. Strong Support for Non-linear Development: Thousands of parallel branches should be handled with ease.
  4. Fully Distributed: Every developer should have a full copy of the history.
  5. Capable of Handling Large Projects: Like the Linux kernel, it should handle millions of lines of code efficiently.

Git was born in April 2005. It was famously named "git" by Linus—British slang for an unpleasant person—because, as he joked, "I'm an egotistical bastard, and I name all my projects after myself. First 'Linux', now 'git'."

Why Git Won the "VCS Wars"

While other systems like Mercurial were developed around the same time, Git eventually became the dominant force in the industry. Several factors contributed to this:

  • The GitHub Effect: Launched in 2008, GitHub provided a social platform for hosting Git repositories, making it incredibly easy to share code and contribute to open-source projects.
  • Performance: Git's performance, especially for branching and merging, was significantly better than its competitors.
  • Flexibility: Git doesn't enforce a specific workflow. Whether you're a single developer or a team of thousands, Git can be adapted to your needs.
  • Reliability: Git's use of SHA-1 hashing (later moving towards SHA-256) ensured that code could not be corrupted or tampered with without detection.

Git Today

Today, Git is the de facto standard for version control. It powers everything from small student projects to the infrastructure of the world's largest tech companies like Google, Microsoft, and Facebook. Microsoft even moved the Windows source code to Git, creating "VFS for Git" to handle the astronomical size of the Windows repository.

Understanding the history of Git helps you appreciate why it works the way it does—optimized for speed, data integrity, and distributed collaboration. In the next chapter, we'll get Git installed on your machine so you can start using it yourself.