Vibeleaderboard
← All Intel
Intel / blog

Highlights from Git 2.56

Source
github.blog
Author
Elijah Newren
Date
From the Daily Brief

GitHub's tour of Git 2.56, which drew contributions from 104 people, leads with git add --resolved. The option stages only the paths that were in conflict and checks them for leftover conflict markers before staging.

That closes two common mistakes in one command. A blanket git add after a merge can sweep in unrelated edits, and a file with a stray marker can be committed as if it were resolved. With --resolved, Git refuses the second case outright.

This matters more as agents resolve merges. An agent told to fix conflicts and stage the result can now use a command whose scope is the conflicted files and whose check is mechanical, rather than relying on the model to remember which paths it touched or to scan for markers itself. Harness authors can put it in agent instructions once teams upgrade.

Read the 2026-09-29 Brief →

Context

Git 2.56 adds a way to stage resolved merge conflicts while leaving unrelated edits alone. As GitHub explains in its release overview, git add --resolved considers only paths still marked as conflicted. It checks selected regular files for leftover conflict markers before changing the staging area. If any remain, it stages none of the selected paths. This helps when a merge begins with other local edits already present: resolving the merge need not pull those edits into the same commit. The marker check catches unfinished conflict cleanup; it does not assess the correctness of the chosen resolution.

Key takeaways · AI-distilled
  • Git 2.56 changes the merge-base search to stop once one side's exclusively painted commits are exhausted. GitHub reports a monorepo case falling from 0.68s to 0.01s, with production evaluations averaging about 20x faster in one repo and often around 70x in another.
  • Path-walk repacking now works with reachability bitmaps and delta islands, removing two blockers for hosts. In GitHub's Fluent UI it produced a 164.4 MB pack versus 558.5 MB for a normal bitmapped repack, though it is still not on by default.
  • The experimental git history command gains drop, which removes a commit and replays its descendants onto its parent. It aborts on conflicts and cannot drop root or merge commits or run on history containing merges.
  • git branch --delete-merged bulk-deletes local branches whose tips are reachable from their matching upstreams. It supports --dry-run and skips branches checked out in a worktree, branches with missing upstreams, and any branch with deleteMerged set to false.
  • Partial clones can now discard large blobs fetched on demand using git repack --filter=blob:limit=<size> --drop-filtered, refetching them from the promisor remote later. It is a manual cleanup, not an automatically bounded cache, and only supports blob:limit filters.
Terms in this piece · Glossary
  • benchmark — A standard public test set for comparing AI models — the shared scoreboards behind every "model X beats model Y" claim.
Read the source github.blog
More from Elijah Newren
Recommended reads
Comments

Checking sign-in…

Loading comments…