ちょっとハマったのでシェアさせてもらいます。 Gitでリモートのブランチを削除しようとしたのですが下記のようなエラーがでてしまい、削除できない場合があります。
リモートリポジトリ削除でdeletion prohibitedのエラー
git push --delete origin develop remote: error: denying ref deletion for refs/heads/develop To https://itpit.net/git/stampandroid ! [remote rejected] develop (deletion prohibited)
! [remote rejected] develop (deletion prohibited)
というように削除が禁止されているエラーが発生した場合にはGitリポジトリの設定が削除を禁止する設定になっている可能性が高いです。
対処方法
リモートのサーバにsshなどでログインしGitのリポジトリのところに移動してconfigファイルを確認してみましょう。
cd /path/to/git-repo vi config
denyNonFastforwards = true
の場合には過去のコミットに戻る事ができず、 denyDeletes = true
の場合だとブランチを削除する事ができない設定という事です。 なのでそれぞれをfalse
にしてください。
[core] repositoryformatversion = 0 filemode = true bare = true quotepath = false [hooks] allowunannotated = true allowdeletebranch = true [receive] denyNonFastforwards = false denyDeletes = false
これで下記のGitコマンドがエラーが出ずに処理できると思います。
git push --delete origin develop
リモートのブランチのコミット戻しもできると思います。
git push --force origin HEAD^:develop
何か指摘点があればコメントください!