Git 2.56 Released With Safer Conflict Resolution and Performance Gains

The latest Git release brings a dedicated resolved-files staging mode, new maintenance commands, and substantial scalability improvements.

Git 2.56 has been released, bringing workflow improvements alongside some significant performance work, especially for large repositories.

One main addition is the new git add --resolved option. It stages files after merge conflicts are fixed while avoiding unrelated changes in the working tree. Git also checks for leftover conflict markers before staging, helping prevent mistakes during conflict resolution.

The release introduces git branch --delete-merged, making it easier to clean up local branches already merged upstream. Git 2.56 also expands the newer git refs command to support creating, updating, deleting, and renaming references.

On the history side, the experimental git history command gains a new drop operation for removing a commit and replaying later commits on top of its parent. The experimental git replay command also adds a --linearize option.

Regarding performance, GitHub reports substantial improvements in merge-base calculations and other operations on very large repositories, with some workloads seeing dramatic execution time reductions.

Repository maintenance has improved, with path-walk repacking gaining support for additional optimization features that can significantly reduce storage requirements in some cases.

On top of that, git bisect run can now reset itself automatically after finding the problematic commit. Git provides better suggestions for common git push mistakes, and partial clones gain improved ways to discard large locally cached objects that can be downloaded again later.

Finally, Git 2.56 also includes improvements to git log --follow, graph rendering, and several internal scalability fixes aimed at making Git behave better with very large codebases.

For more details, see the announcement.

Bobby Borisov

Bobby Borisov

Bobby, an editor-in-chief at Linuxiac, is a Linux professional with over 20 years of experience. With a strong focus on Linux and open-source software, he has worked as a Senior Linux System Administrator, Software Developer, and DevOps Engineer for small and large multinational companies.

Leave a Reply

Your email address will not be published. Required fields are marked *