Git Сelebrates 20 Years With the Release of Version 2.50, Featuring Major Improvements
13:12, 17.06.2025
On June 16, 2025, Git 2.50 was released — a major update to one of the world's most popular version control systems. The anniversary version, timed to coincide with the project's 20th anniversary, includes 621 changes made by 98 developers, including 24 new contributors. Git 2.50 is a logical continuation of versions 2.47 (October 2024), 2.48 (January 2025), and 2.49 (March 2025), continuing the focus on performance optimization and modernization of the system's internal components.
Working With Unreachable Objects Has Become More Efficient
One of the key improvements concerns working with so-called “cruft packs” — archives with objects that are not referenced by either branches or tags. It is now possible to split such pack files into several smaller ones, which reduces the load on the disk when repackaging. There is also a new option, --combine-cruft-below-size, which allows you to combine small pack files without limiting the final size.
Updating Multi-Pack Indexes and Removing the Old Merge Engine
Git 2.50 implements experimental support for incremental MIDX (multi-pack index) updates, where each index level is stored separately as a bitmap file. This is especially important for large repositories where speed is important when adding new objects.
The outdated recursive merge engine has also been completely removed from the code, giving way to the more modern and efficient ORT (Ostensibly Recursive's Twin). The new engine works faster, requires fewer write operations, and is easier to maintain.
New Commands and Options
The update includes many useful new features:
- New actions have been added to git maintenance: worktree-prune, rerere-gc, and reflog-expire, which clean up the repository of obsolete and conflicting data.
- The git reflog drop command has been added, allowing you to delete the reflog for a specified branch.
- Commands that work with output (git cat-file -batch, git rev-list) have new filters and a machine-oriented format with NUL character separation.
- Working with references has been optimized — prefixes are cached, and update-ref has been sped up.
Improvements in Networking Capabilities and Ecosystem
For interaction with external systems, Git 2.50 offers new KeepAlive settings via cURL: http.keepAliveIdle, http.keepAliveInterval, and http.keepAliveCount. And the send-email command now interacts better with the Outlook SMTP server.
An interesting step was the removal of Perl from dependencies when building documentation and running tests. Scripts and tests have now been rewritten in shell and C, making the build easier and more universal.
With each release, Git continues to evolve, confirming its status as a universal and powerful tool for teamwork on code.