I created a branch, worked on it, merged it with the base branch and now want to delete it. The branch was created on the git remote server as well.
Now when I ran git branch -d branch, it removed it and I pushed it. But i still see the branch on the git remote server.
I saw a similar issue earlier when I created this branch and I was not able to see it on the remote git server.
I am even able to checkout from this branch.
Am I missing anything here?
To expand on these answers, each branch basically exists in three places:
origin/foo
origin/foo
(which is updated via git fetch
)foo
(which is updated via git merge origin/foo
following git fetch
- or more commonly, both are done together via git pull
).git branch -d
deletes the last of these three, namely the local branch. git branch -d -r
will remove your copy of the remote branch (or you can run git remote prune origin
after deleting local branches).
To delete the branch on the remote server though, you must use git push
. The old syntax for this is git push origin :branchname
. This is because the syntax is localref:remoteref
, for example it is possible to push a local branch on your machine to a remote branch with a different name, e.g. git push origin localbranch:remotebranch
. If you leave the localbranch
part empty, you're telling git to push nothing to the remote branch, deleting it.
If that's confusing, don't worry, the git developers agree with you. Newer versions have a --delete
option so git push origin --delete branchname
does the same thing as git push origin :branchname
, but its intent is much more clear.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With