Skip to content

Instantly share code, notes, and snippets.

@cyberplanner
Created September 6, 2017 08:34
Show Gist options
  • Save cyberplanner/8a2b12403687ecb4b2b1d9e35385cc44 to your computer and use it in GitHub Desktop.
Save cyberplanner/8a2b12403687ecb4b2b1d9e35385cc44 to your computer and use it in GitHub Desktop.
Delete git branches

Executive Summary

$ git push -d origin <branch_name>
$ git branch -d <branch_name>

Delete Local Branch

To delete the local branch use:

$ git branch -d branch_name

or use:

$ git branch -D branch_name

Note: The -d option is an alias for --delete, which only deletes the branch if it has already been fully merged in its upstream branch. You could also use -D, which is an alias for --delete --force, which deletes the branch "irrespective of its merged status." [Source: man git-branch]

Delete Remote Branch [Updated on 1-Feb-2012]

As of Git v1.7.0, you can delete a remote branch using

$ git push origin --delete <branch_name>

which might be easier to remember than

$ git push origin :<branch_name>

which was added in Git v1.5.0 "to delete a remote branch or a tag."

Therefore, the version of Git you have installed will dictate whether you need to use the easier or harder syntax.

Delete Remote Branch [Original Answer from 5-Jan-2010]

From Chapter 3 of Pro Git by Scott Chacon:

Deleting Remote Branches

Suppose you’re done with a remote branch — say, you and your collaborators are finished with a feature and have merged it into your remote’s master branch (or whatever branch your stable codeline is in). You can delete a remote branch using the rather obtuse syntax git push [remotename] :[branch]. If you want to delete your serverfix branch from the server, you run the following:

$ git push origin :serverfix

To git@github.com:schacon/simplegit.git

  • [deleted] serverfix Boom. No more branch on your server. You may want to dog-ear this page, because you’ll need that command, and you’ll likely forget the syntax. A way to remember this command is by recalling the git push [remotename] [localbranch]:[remotebranch] syntax that we went over a bit earlier. If you leave off the [localbranch] portion, then you’re basically saying, “Take nothing on my side and make it be [remotebranch].” I issued git push origin :bugfix and it worked beautifully. Scott Chacon was right—I will want to dog ear that page (or virtually dog ear by answering this on Stack Overflow).

Then you should execute this on other machines

$ git fetch --all --prune

to propagate changes.

Source: https://stackoverflow.com/questions/2003505/how-do-i-delete-a-git-branch-both-locally-and-remotely

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment