---
title: "Clean up merged branches with git branch --delete-merged · Ihab Khattab"
description: "Git 2.56 adds git branch --delete-merged, so you can stop using this:"
url: "https://ihabkhattab.com/til/git-branch-delete-merged/"
---

# Clean up merged branches with git branch --delete-merged

Oct 2, 2026 · [Also on X](https://x.com/HO_BA/status/2105779699519569932)

Git 2.56 adds `git branch --delete-merged`, so you can stop using this:

```sh
git branch --merged | grep -v "^\*\|main\|master" | xargs git branch -d
```

It deletes local branches whose work has already landed on the upstream they track:

```sh
git branch --dry-run --delete-merged origin  # preview
git branch --delete-merged origin
```

It’s also safer than the one-liner: it skips branches checked out in any worktree and any branch with `branch.<name>.deleteMerged` set to `false`. [Docs](https://git-scm.com/docs/git-branch)

[← All TILs](https://ihabkhattab.com/til/)
