<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/what-s-new-in-git-2-56-dabyz0luy" -->

---
title: What's new in Git 2.56 | daily.dev
description: Git 2.56.0 ships with 748 non-merge commits from 104 contributors. Highlights include git add --resolved for staging only conflict-resolved paths, a merge-base...
canonical: https://daily.dev/posts/what-s-new-in-git-2-56-dabyz0luy
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: What's new in Git 2.56 | daily.dev
og:description: Git 2.56.0 ships with 748 non-merge commits from 104 contributors. Highlights include git add --resolved for staging only conflict-resolved paths, a merge-base...
og:url: https://daily.dev/posts/what-s-new-in-git-2-56-dabyz0luy
og:image: https://api.daily.dev/og/posts/daBYz0LUy.png
og:image:alt: What's new in Git 2.56
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# What's new in Git 2.56

**[Collections](https://daily.dev/sources/collections)** · 3 min read · 14 upvotes · 1 comments

## Summary

Git 2.56.0 ships with 748 non-merge commits from 104 contributors. Highlights include git add --resolved for staging only conflict-resolved paths, a merge-base algorithm up to 70x faster on large monorepos, path-walk repacking now compatible with reachability bitmaps and delta islands, an experimental git history drop subcommand for removing a commit and replaying descendants, a new git refs toolbox command for ref management, typo detection for mistyped commands like using a slash instead of a space, and branch --delete-merged for bulk cleanup of merged branches. Additional updates cover git bisect run, git replay --linearize, more reliable git log --follow across renames, indented graph roots, blob cleanup for partial clones, and internal work removing global state and moving Windows builds from MINGW64 to UCRT64.

## Content

Git 2.56.0 shipped with 748 non-merge commits from 104 contributors, 39 of them first-timers. Here's a rundown of what's actually worth knowing.

## git add --resolved

The old `git add` workflow for resolving merge conflicts has a subtle footgun: running it on a directory stages everything in scope, not just the files you actually resolved. The new `git add --resolved` only stages conflict-resolved paths, so you can't accidentally sweep in unrelated changes.

## git history drop

New experimental subcommand. `git history drop <commit>` removes a commit and replays its descendants onto its parent in one step, rather than making you reach for an interactive rebase. It's experimental, so expect rough edges, but the intent is clear.

## git refs toolbox

A new `git refs` command adds `create`, `delete`, `update`, and `rename` subcommands for managing refs directly. Useful for scripting and tooling that currently has to work around the lack of a proper refs API.

## Branch cleanup flags

`git branch` gets two new flags:
- `--forked`: filters branches by fork point
- `--delete-merged`: bulk-deletes branches that have already been merged

The second one in particular is something people have been scripting around for years.

## Faster merge-base algorithm

The merge-base traversal now stops once no new common ancestors can appear. In some monorepo scenarios this is up to 70x faster. No config change needed.

## Path-walk repacking

Path-walk repacks now work alongside reachability bitmaps and delta islands. This was the main blocker preventing large repository hosts from adopting path-walk repacking, so it's a meaningful unblock even if most users won't notice directly.

## remote-object-info for git cat-file

A new `remote-object-info` command lets you fetch object metadata from a remote without downloading the actual blobs. Handy for partial clone workflows where you want to inspect objects without pulling everything down.

## --drop-filtered for git repack

When working with partial clones, `git repack --drop-filtered` reclaims disk space by removing objects that were filtered out. Previously that space just sat there.

## --linearize for git replay

`git replay --linearize` handles merge commits during server-side rebases by linearizing them. Addresses a gap that made `git replay` awkward to use in certain CI/server contexts.

## Typo detection

Git now suggests corrections for likely command-line mistakes, like typing `git push origin/main` instead of `git push origin main`. Small thing, but it catches a common error.

## git bisect run --reset-when-found

New option that stops the bisect run and resets state as soon as the bad commit is found, rather than continuing to completion. Saves time in long bisect sessions.

## git log --follow improvements

More reliable rename tracking across file history. The previous behavior had edge cases where `--follow` would lose the thread across certain rename patterns.

## git log --graph indentation

Visual roots in `--graph` output are now indented, making the graph easier to read when there are multiple root commits.

## Internal changes

A lot of refactoring continued under the hood: removing global state dependencies (the `the_repository` pattern), pluggable object database backends, and a Windows build switch from MINGW64 to UCRT64. Memory leaks, segfaults, and several Coverity-flagged issues were also fixed.

## The road to Git 3.0

The project has sketched out a rough roadmap: an interim 2.98 release planned for December 2026, with 2.99 and 3.0 shipping together in spring 2027. The main drivers are SHA-256 transition readiness and the Rust ecosystem work. Nothing in 3.0 is finalized yet, but the timeline gives some sense of where things are headed.

## Questions this post answers

### What does git add --resolved do in Git 2.56?

It stages only the paths whose merge conflicts have been resolved, rather than staging the entire file as the old git add <file> workflow did. This avoids accidentally including unrelated changes made in the same file while resolving a conflict, closing a common footgun during merge conflict resolution.

_Developers cleaning up conflict resolution habits can track Git changelogs like this on daily.dev._

### How much faster is the merge-base algorithm in Git 2.56?

The merge-base traversal can be up to 70 times faster on large monorepos in Git 2.56.0. It achieves this by stopping the traversal as soon as it determines no new common ancestors are possible, and it requires no configuration changes to benefit from the speedup.

_Teams on large monorepos can follow Git performance updates like this on daily.dev before planning upgrades._

### What is git refs in Git 2.56?

It is a new toolbox command introduced in Git 2.56.0 that bundles create, delete, update, and rename subcommands for managing refs. It gives scripts and tooling a cleaner, higher-level interface for ref management instead of requiring them to shell out to lower-level plumbing commands.

_Anyone scripting Git ref management can keep up with new tooling commands like this on daily.dev._

## Community discussion

Top comments from developers on daily.dev.

**@pdfopsdev** · 0 upvotes

> git history drop sounds like it's aiming at the 'delete one bad commit, keep everything after it' case people currently solve with rebase -i. does it handle merge commits in the dropped range or is it linear-history only for now?

## Similar posts on daily.dev

- [Looking forward to Git 2.56 - and 3.0](https://daily.dev/posts/looking-forward-to-git-2-56---and-3-0-h3in0tamj) · Lobsters · 3 upvotes · 2 comments
- [Highlights from Git 2.52](https://daily.dev/posts/highlights-from-git-2-52-4qkhhmx3p) · GitHub Blog · 98 upvotes · 1 comments
- [Git 2.56-rc0 Released With Updated Contribution Guidelines, Improvements For Swift](https://daily.dev/posts/git-2-56-rc0-released-with-updated-contribution-guidelines-improvements-for-swift-ycuj0vo5e) · Phoronix · 0 upvotes · 0 comments
- [Git 2.54.0 released](https://daily.dev/posts/git-2-54-0-released-zxgcvkj05) · LWN.net · 42 upvotes · 4 comments

---

Tags: [#open-source](https://daily.dev/tags/open-source), [#git](https://daily.dev/tags/git), [#version-control](https://daily.dev/tags/version-control)

[View this post on daily.dev](https://daily.dev/posts/what-s-new-in-git-2-56-dabyz0luy)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"What's new in Git 2.56","url":"https://daily.dev/posts/what-s-new-in-git-2-56-dabyz0luy","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/what-s-new-in-git-2-56-dabyz0luy"},"datePublished":"2026-09-28T17:39:22.404Z","dateModified":"2026-09-28T18:11:23.036Z","description":"Git 2.56.0 ships with 748 non-merge commits from 104 contributors. Highlights include git add --resolved for staging only conflict-resolved paths, a merge-base...","isAccessibleForFree":true,"articleSection":"Collections","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Collections","logo":"https://media.daily.dev/image/upload/s--fk_6ycEi--/f_auto,q_auto/v1780996001/logos/collections?_a=BAMAMiWQ0","url":"https://daily.dev/sources/collections"},"commentCount":1,"discussionUrl":"https://daily.dev/posts/what-s-new-in-git-2-56-dabyz0luy","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":14},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"open-source,git,version-control","timeRequired":"PT3M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Collections","item":"https://daily.dev/sources/collections"},{"@type":"ListItem","position":3,"name":"What's new in Git 2.56"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/what-s-new-in-git-2-56-dabyz0luy","comment":[{"@type":"Comment","text":"git history drop sounds like it’s aiming at the ‘delete one bad commit, keep everything after it’ case people currently solve with rebase -i. does it handle merge commits in the dropped range or is it linear-history only for now?","datePublished":"2026-09-29T18:05:35.404Z","url":"https://daily.dev/posts/daBYz0LUy#c-sUJ50ieGT","author":{"@type":"Person","name":"PDFops","url":"https://daily.dev/pdfopsdev","image":"https://media.daily.dev/image/upload/s---8isRBKc--/f_auto/v1782922291/avatars/avatar_orjMeK8QKaaVZwGq7ScPz?_a=BAMAMicg0"}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/what-s-new-in-git-2-56-dabyz0luy#faq","mainEntity":[{"@type":"Question","name":"What does git add --resolved do in Git 2.56?","acceptedAnswer":{"@type":"Answer","text":"It stages only the paths whose merge conflicts have been resolved, rather than staging the entire file as the old git add <file> workflow did. This avoids accidentally including unrelated changes made in the same file while resolving a conflict, closing a common footgun during merge conflict resolution. Developers cleaning up conflict resolution habits can track Git changelogs like this on daily.dev."}},{"@type":"Question","name":"How much faster is the merge-base algorithm in Git 2.56?","acceptedAnswer":{"@type":"Answer","text":"The merge-base traversal can be up to 70 times faster on large monorepos in Git 2.56.0. It achieves this by stopping the traversal as soon as it determines no new common ancestors are possible, and it requires no configuration changes to benefit from the speedup. Teams on large monorepos can follow Git performance updates like this on daily.dev before planning upgrades."}},{"@type":"Question","name":"What is git refs in Git 2.56?","acceptedAnswer":{"@type":"Answer","text":"It is a new toolbox command introduced in Git 2.56.0 that bundles create, delete, update, and rename subcommands for managing refs. It gives scripts and tooling a cleaner, higher-level interface for ref management instead of requiring them to shell out to lower-level plumbing commands. Anyone scripting Git ref management can keep up with new tooling commands like this on daily.dev."}}]}
```

