how do I remove a remote branch when I get an erro

2019-04-30 00:52发布

问题:

I have tried the following command and it fails.

git push origin :next
remote: error: denying ref deletion for refs/heads/next
To blah.git
 ! [remote rejected] next (deletion prohibited)
error: failed to push some refs to 'blah.git

I am using gitolite and cannot find any of this error message in the hooks. How can I disable this so that I can delete or rename this remote branch? When I run git branch -r -d origin/next, it appears to go away, but the next git pull brings it right back.

回答1:

Make sure in your gitolite config, you have the rewind flag on so instead of RW use RW+. That will allow you to delete branches and commits.

git push -f origin :next



回答2:

This looks like the error you get when you try to push to a repo that has denyDeletes = true. It's intended to prohibit you from rewriting history in the remote (it is usually accompanied by denyNonFastForwards = true). That being the case, you can only delete the branch by deleting it on the remote; --force won't work.