The open-source Git project released version 2.56.0 on September 28, 2026, following contributions from more than 104 people, including 39 first-time contributors. The release focuses on reducing the risks of merge errors and speeding up operations used by large repositories and code-hosting services.
Staging Conflicts Without Touching Other Changes
Git 2.56 adds git add --resolved to process only files that were in a conflicted state. Unlike commands such as git add -u, the new mode does not attempt to add all modified tracked files, protecting local changes unrelated to the merge operation.
Before staging, Git checks unmerged text files for leftover conflict markers. If it finds a marker in any specified file, it leaves the index unchanged instead of staging part of the operation. The operation can be restricted using a pathspec, while deletions and binary conflicts are handled normally because they do not contain text markers.
Speeding Up the Search for Merge Bases
The release improves the algorithm for finding the best common ancestors between commits, a process used by merges, three-dot diffs, and pull request comparisons. Git now stops when one of the exclusive sides is exhausted in the search queue, because no new merge base can appear at that point.
In one large monorepository state, the change reduced the operation time from 0.68 seconds to 0.01 seconds, and productivity evaluations on two large repositories recorded an improvement of about 70 times in one and an average of nearly 20 times in the other. The git merge-base --all v4.8 v4.9 operation in a Linux kernel-related case also fell from 167,441 steps and 0.29 seconds to 3,887 steps and 0.01 seconds.
Smaller Repack Files for Hosting Services
Git 2.56 removes two obstacles to using path-based repacking, a technique that groups file objects located near one another in the repository tree to improve their compression. In a test on a copy of the Fluent UI repository, the size of the storage pack fell from 558.5 megabytes with traditional repacking to 164.4 megabytes with --path-walk, a reduction of about 71%.
This approach is now compatible with reachability bitmaps and delta islands, allowing hosting services to evaluate storage savings while preserving their existing service and isolation mechanisms. However, it is not enabled by default and does not represent an automatic transition for every repository.
Additional Tools and Practical Improvements
- The experimental git history drop command adds the ability to delete a commit and replay the commits that follow it, while limitations related to conflicts, root commits, and merge operations remain.
- The git refs command unifies reference creation, updating, deletion, and renaming operations, with support for compare-and-swap protection through old values.
- git branch --delete-merged enables bulk deletion of merged branches according to tracking branches, with a preview option and protection for specified branches.
- git bisect run --reset-when-found adds automatic state reset after finding the commit responsible for a failure.
- The git repack command can manually discard large retrieved binary objects in partial clones while keeping them fetchable from the trusted server when needed.
- git log --follow improves tracking path renames through nonlinear history and also improves the display of graphs with multiple roots.
Why Does This Release Matter?
The practical value of Git 2.56 is not limited to new commands; the release addresses direct points of friction in the work of developers and repository administrators. The git add --resolved mode reduces the likelihood of including unintended changes, while the improvements to merge bases and repacking target time and storage costs in large repositories. However, some tools remain experimental or manual, particularly the history-management commands and object cleanup in partial clones, so they should not be treated as automatic policies or unconditional replacements for established workflows.
The release indicates that the Git project continues to improve performance at the level of algorithms and internal structures, rather than merely adding commands for end users. The release details recommend consulting the complete Git 2.56 notes to review the remaining changes before adopting experimental features in production environments.