Knowledge

How to delete a local (and remote) Git branch

#Development

Deleting a branch locally uses git branch -d, with a capital -D to force it. Deleting it on the remote is a separate command that people often forget.

Published by Mark van Eijk on June 23, 2026 · 1 minute read

  1. Delete a local branch
  2. Delete the remote branch
  3. Clean up stale remote-tracking branches

Delete a local branch

Use -d (lowercase) to delete a branch that has already been merged. Git refuses if the branch has unmerged commits, which protects you from losing work:

git branch -d feature-login

If you are sure you want to discard the branch even though it is not merged, force it with -D:

git branch -D feature-login

You cannot delete the branch you are currently on. Switch away first:

git switch main
git branch -d feature-login

Delete the remote branch

Removing the branch locally does not touch the remote. Delete it there explicitly:

git push origin --delete feature-login

An older shorthand does the same thing (note the leading colon):

git push origin :feature-login

Clean up stale remote-tracking branches

After a branch is deleted on the remote, your local clone may still show it under git branch -r. Prune those references:

git fetch --prune

To rename a branch instead of deleting it, see How to rename a Git branch.

Subscribe to our newsletter

Do you want to receive regular updates with fresh and exclusive content to learn more about web development, hosting, security and performance? Subscribe now!

Related articles

Install PHP memcached extension on macOS

Deleting a branch locally uses git branch -d, with a capital -D to force it. Deleting it on the remote is a separate command that people often forget.

Read more →

Fix: Cannot connect to the Docker daemon at unix:///var/run/docker.sock

Deleting a branch locally uses git branch -d, with a capital -D to force it. Deleting it on the remote is a separate command that people often forget.

Read more →