问题
I'm using Git Flow for my project, and have completed the git flow feature finish step that merged my feature branch into my develop branch.
I then performed git push to GitHub, but on GitHub I still see the feature branch as well as develop.
When I run git branch locally, I only see develop and master, which is what I'd expect.
How can I remove the branch from GitHub? I could cope with this one, but if this happens for every feature I'll end up with a massive list of old branches.
Many thanks in advance.
回答1:
Assuming the origin remote refers to your GitHub respository, you can delete the merged branch with:
git push origin :name-of-now-merged-branch
To explain that syntax further, when you do:
git push origin some-branch
... the some-branch parameter is actually a "refspec" which defines a mapping between a source name and a destination name, usually of the form <source-name>:<destination-name>.  If there's no : in the refspec, it assumes that you mean some-branch:some-branch.  The way to say "I just want to delete the remote branch" is to miss out the <source-name> completely, just ending up with : followed by the remote branch name.
回答2:
Check which remote branches are available
git branch -r
Then you can delete the remote branch with:
git push origin :branchname
To delete the branch local
git branch -d branchname
Edit:
http://gitready.com/beginner/2009/02/02/push-and-delete-branches.html
回答3:
As per this answer, if you do git push --all --prune, it will automatically remove all those merged branches without you having to go in manually and removing each one.
来源:https://stackoverflow.com/questions/11468200/git-branch-merged-on-local-repo-but-still-visible-on-github