Git 2.56 released: safer conflict resolution and new commands
Translated by a model; the original is in Russian.
Junio C. Hamano has announced the latest feature release of the Git distributed version-control system, 2.56.0. Since 2.55 shipped back in June, 748 non-merge commits have landed from 104 people, 39 of whom contributed for the first time. As usual, the project counts not just authorship but also bug reports, mentoring, and reviews recorded in commit trailers.
Working with conflicts
One of the release's main themes is making merge-conflict resolution safer. git commit now refuses to amend a commit or make a partial commit while a conflict is still unresolved. A new git add --resolved option helps here: it stages only the paths whose conflicts have been settled, leaving other local changes untouched, and it first scans for leftover conflict markers and aborts if it finds any.
New commands and subcommands
The git refs toolbox gains create, delete, update, and rename subcommands for direct reference management. The experimental git history command learned a drop subcommand that removes a commit while replaying its descendants onto its parent. git replay picked up a --linearize flag that drops merge commits and flattens the replayed history. There is also a new git branch --delete-merged option to clean up branches already merged into their tracked remotes.
Performance and small touches
Packing via --path-walk now works alongside reachability bitmaps and delta islands, speeding up packaging. Commit traversal, the enumeration of untracked files in git status, and operations on the reftable backend have all been optimized.
There are pleasant conveniences too. Git now spots common typos: a command such as git push origin/main comes with advice offering a fix. Option parsing has been aligned with Unix convention — requesting help via -h or --help now exits with 0 instead of 129. New userdiff patterns for Swift add support for that language's specific constructs.
The notes also point out that Rust support is enabled by default while remaining optional; it will become mandatory in Git 3.0. It is now possible to build universal macOS binaries as well. As ever, the full changelog rounds things out with many memory-leak fixes, crash removals, and hardening against corrupt data.
Source: LWN.net
Comments
Sign in, to comment.