Timeline of Git

Git from its creation for Linux development in 2005 to reftable storage in 2024: distributed workflows, hosting, large repositories, command design, and changes to its storage model.

Category
Engineering & Technology
Tags
computing internet
Events
15 events 2005–2024
Generated
by gpt-6-astra
  1. 2005: Torvalds creates Git for Linux development

    Linus Torvalds began Git after the Linux kernel community lost free access to BitKeeper. Git used local repositories and content-addressed objects to support distributed work, letting developers inspect history and make commits without a central server.

    Wikipedia
  2. 2005: Hamano becomes Git’s maintainer

    Linus Torvalds handed maintenance to Junio Hamano in July. The transfer established the long-running maintainer role that guided Git beyond its initial development sprint for the Linux kernel.

    Wikipedia
  3. 2005: Git reaches version 1.0

    Junio Hamano released Git 1.0 in December. The project had progressed from a tool created for an immediate kernel-development need into a version-control system with a growing set of commands and contributors.

    Wikipedia
  4. 2008: GitHub launches repository hosting

    GitHub launched a service that combined Git repositories with a web interface for collaboration. Hosting and social features helped developers discover projects and contribute changes while Git itself remained an independent, distributed tool.

    Wikipedia
  5. 2011: GitLab offers self-hosted collaboration

    Dmytro Zaporozhets and Valery Sizov started GitLab as an open-source collaboration application around Git. Organizations could host repositories and review work on their own infrastructure instead of relying entirely on a public hosting service.

    Wikipedia
  6. 2014: Git 2.0 changes the default push behavior

    Git 2.0 made simple the default push mode, favoring the current branch and checking its upstream name. The change reduced the chance that an unqualified push would update several matching branches unintentionally.

    Wikipedia
  7. 2015: Git LFS separates large files from history

    GitHub introduced Git Large File Storage, an open-source extension that stored large file contents separately while committing small pointer files. The design made repositories containing assets such as video and datasets more manageable without changing ordinary Git objects.

    Wikipedia
  8. 2015: Git adds linked working trees

    Git 2.5 introduced experimental support for multiple working trees sharing one repository. Developers could check out different branches in separate directories without duplicating the entire object database or repeatedly interrupting work on one branch.

    Wikipedia
  9. 2017: Microsoft virtualizes very large Git repositories

    Microsoft introduced its Git Virtual File System to work with repositories on the scale of the Windows source tree. Files could be downloaded as needed, reducing the cost of treating a very large repository as a fully populated local checkout.

    Wikipedia
  10. 2018: Commit graphs accelerate history queries

    Git 2.18 introduced an optional commit-graph file that cached commit relationships and related metadata. Commands could traverse history more efficiently without repeatedly unpacking and parsing individual commit objects.

    Wikipedia
  11. 2019: Git separates switching from restoring files

    Git 2.23 introduced the experimental switch and restore commands. They separated branch switching from restoring file contents, giving users more focused alternatives to the several distinct operations handled by checkout.

    Wikipedia
  12. 2020: Sparse checkout gains a dedicated command

    Git 2.25 added a sparse-checkout command and a directory-oriented cone mode. Sparse working trees already existed, but the new interface made it easier to work on selected parts of large repositories and enabled faster pattern matching.

    Wikipedia
  13. 2020: Git adds experimental SHA-256 repositories

    Git 2.29 supported experimental repositories using the 256-bit Secure Hash Algorithm, SHA-256, for object identifiers. Existing repositories continued to use SHA-1, and direct interoperability between the two formats was still unfinished.

    Wikipedia
  14. 2021: Git adopts a new default merge strategy

    Git 2.34 made the ort strategy the default for merging two branches, replacing recursive. The new implementation improved merge performance and handling of difficult cases such as renames, without changing the basic branch-and-merge workflow.

    Wikipedia
  15. 2024: Git offers reftable reference storage

    Git 2.45 integrated reftable as an optional backend for branch and tag references. The table-based format addressed scaling and update behavior in repositories with many references; it did not replace Git’s content-addressed object storage.

    Wikipedia