How do I delete a remote branch in Git? [duplicate]
I created a branch notmaster
to commit as well as push some changes. When I was finished with that branch, I merged the changes back into master
, pushed them out, and then deleted the local notmaster
.
$ git branch -a
* master
remotes/origin/master
remotes/origin/notmaster
Is there anyway to delete the remote notmaster
?
A little more clarity, with the solution from Ionut:
The usual method failed for me:
$ git push origin :notmaster
error: dst refspec notmaster matches more than one.
That's because I had a tag with the same name as the branch. This was a poor choice on my behalf and caused the ambiguity. So in that case:
$ git push origin :refs/heads/notmaster
git push origin :notmaster
, which basically means "push nothing to the notmaster remote".
I had the same issue. I had both a branch and a tag named 3.2. That's why it says there's more than one match:
git error: dst refspec 3.2 matches more than one.
Here's how to delete the branch:
git push origin :heads/3.2
And here's how to delete the tag:
git push origin :tags/3.2
git push origin --delete notmaster
If you're using Git 1.7.0 or later, this will do the trick. Prior to Git 1.7.0, you needed to use the less intuitive (but equally effective) syntax:
git push origin :notmaster
The older syntax still works in newer versions of Git, but the newer syntax seems more humane and easier to remember. If I want to delete a branch, typing --delete
seems like the natural thing to do.
From the 1.7.0 release notes:
"git push" learned "git push origin --delete branch", a syntactic sugar for "git push origin :branch".