Git 2.45 Released: Preliminary reftable and SHA-256 Interoperability
Git 2.45 introduced a preliminary reftable reference-storage backend for faster reference operations, and experimental interoperability between SHA-1 and SHA-256 repositories.
Historical Archive. This article documents an event from 2024 and is preserved with its original date for reference. It is not current news, and details may have changed since publication.
What happened
Git 2.45 was released on April 29, 2024, according to the GitHub blog's official Highlights from Git series, with contributions from more than 96 developers. Two experimental foundations stood out: a new reference-storage backend and the first steps toward interoperability between Git's two hash functions.
Preliminary reftable support
Git 2.45 introduced preliminary support for a new reference-storage backend called reftable. Historically Git stores branches and tags as loose files or in a single packed-refs file, which becomes inefficient for repositories with a very large number of references. Reftable is a binary format designed for near-constant-time reference lookups and atomic updates that scale with the size of the update rather than the total number of references. Originally designed by Shawn Pearce for JGit and Gerrit, it can now be tried by initialising a repository with --ref-format=reftable.
SHA-1 and SHA-256 interoperability
Git has historically identified objects using the SHA-1 hash function, which has known collision attacks. The project chose SHA-256 as its successor, with experimental SHA-256 support added in Git 2.29 and declared non-experimental in 2.42. Git 2.45 took the next step by adding experimental, preliminary interoperability between SHA-1 and SHA-256 through a compatibility object format, letting tools refer to objects by either hash. The feature is experimental and a first step toward full interoperability.
Everyday improvements
Beyond the big-ticket items, Git 2.45 added smaller conveniences: git cherry-pick gained the --empty option that git rebase already had, for controlling how empty commits are handled; git config gained a --comment option to annotate settings; the diff source and destination prefixes became configurable; and the commit comment character could be set to an arbitrary string.
Why it mattered
Reftable and the hash-function transition are two of the most significant long-term efforts in Git's evolution, addressing scalability for huge repositories and the security of object identification, respectively. Git 2.45's preliminary support for both, alongside practical everyday improvements, marked meaningful progress on the project's future foundations.
Related on Skillo
See also: Git 2.42 and its reachability improvements.
Sources
Published date reflects the original event date (2024-04-29). This article is original Skillo editorial written from the sources above; facts were verified in September 2026.
Written by
Skillo Staff
0 Comments
Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.