Highlights from Git 2.56
7 hours ago
- Git 2.56 introduces `git add --resolved` to safely stage resolved merge conflicts without staging unrelated changes, and it checks for leftover conflict markers before staging.
- Merge-base computation is optimized with a new stopping rule that ends traversal earlier, reducing time from 0.68s to 0.01s in one case and fixing a Linux kernel performance issue.
- Path-walk repacking now supports reachability bitmaps and delta islands, enabling large storage savings (71% smaller pack in one benchmark) while preserving server features.
- The experimental `git history` command adds `drop <commit>` to remove a commit and replay descendants, with safety checks for conflicts and local changes.
- Low-level reference management is consolidated under `git refs rename`, providing compare-and-swap protection for updates and deletions.
- Bulk cleanup of local branches is added with `git branch --delete-merged` and `--dry-run`, skipping branches checked out in worktrees or with missing upstreams.
- `git bisect run` gains `--reset-when-found` to automatically return to the original commit or leave the culprit checked out after finding a regression.
- Experimental `git replay` can now flatten merge topology with `--linearize`, matching `git rebase --no-rebase-merges` without using the working tree.
- Git now suggests corrections for common command-line mistakes like `git push origin/main` and `git branch --set-upstream-to origin main`.
- Partial clones can discard large recoverable blobs with `git repack --drop-filtered`, relying on the promisor remote for future fetches.
- `git log --follow` now tracks path renames more reliably through non-linear history by recording path separately for each parent.
- Graph rendering indents unrelated commits below root commits for `git log --graph`, improving visualization clarity.
- Numerous performance improvements reduce scaling cliffs: reftable writes, packfile loading, tombstone-heavy reftables, path-limited diffs, and untracked-file collection become faster.