问题
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.
来源:https://stackoverflow.com/questions/5723511/how-do-i-remove-a-remote-branch-when-i-get-an-error