頭脳一式

人の記憶なんて曖昧なもの。すべての情報を頭に記憶するなんてナンセンス。困ったらここに来ればいいじゃん?というスタンスで最強のナレッジベースを目指すブログ

【GitLab】git pushできないときの対処方法。[You are not allowed to push code to protected branches on this project.]が発生する。

git push時に以下のエラーが発生する場合の対処方法。

XXXXX@DESKTOP-AQBVPOG MINGW64 /c/workspace/prj1 (master)
$ git push -u origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 285 bytes | 285.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: GitLab: You are not allowed to push code to protected branches on this project.
To http://localhost:8888/group1/prj1.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'http://localhost:8888/group1/prj1.git'

このエラーが出たとき、私はGitLabのdeveloperユーザでmasterブランチへpushしようとしていました。
とりあえずGoogle翻訳にかけてみたところ、次のとおり翻訳されました。

あなたがこのプロジェクトに保護されたブランチにコードをプッシュすることはできません。

そして気づきました。developerユーザの場合、masterブランチへpush出来ないことを。
次の画像を見ると、masterブランチがprotectedになっていることを確認できました。

masterブランチがprotectedになっている画像
masterブランチがprotectedになっているとdeveloperユーザでは`git push`できない。
つまり、developerユーザの場合、ローカルリポジトリで修正したmasterブランチのファイルをgit pushすることは出来ないのです。