Git Core Improvements and Contributions
Journey through Git's 20-year history

Journey through Git's 20-year history

4/14/2025 · Patrick Steinhardt

What this post added

This post details the early history of Git, starting from its first commit in 2005. It describes the initial set of commands (`init-db`, `update-cache`, `write-tree`, `read-tree`, `commit-tree`, `cat-file`, `show-diff`), the early distinction between shared and private object storage, and the non-ergonomic process of creating commits. It then covers the transition to Git 0.99, the introduction of the top-level `git` command, the plumbing/porcelain distinction, and Junio Hamano taking over maintainership. The post also touches on Git 1.0, the evolution of remotes configuration (from `.git/branches` to `.git/remotes` and eventually `.git/config`), and the history of Git's branding and website redesigns, culminating in the Git 2.0 release which introduced backwards-incompatible changes like the default behavior of `git push`.

Read the original post ↗