1. ホーム
  2. branch

[解決済み] GitLabのエラーを修正しました。"このプロジェクトでは保護されたブランチにコードをプッシュすることが許可されていません"?

2022-02-01 13:21:46

質問

プロジェクトで開発者アクセス権を持っているときにコードを git にプッシュすると問題が発生します。この問題はどこから来るのでしょうか?また、どのようにそれを修正するのですか?

エラーメッセージが表示されます。

エラーが発生しました。このプロジェクトでは、保護されたブランチにコードをプッシュすることは許可されていません。
...
error: failed to push some refs to ...

解決方法は?

問題ありません。すべて期待通りに動作しています。

GitLab では、いくつかのブランチを保護することができます。デフォルトでは、保護されたブランチには Maintainer/Owner のユーザーだけがコミットできます ( パーミッション ). master ブランチはデフォルトで保護されています。これは、開発者がマージリクエストを発行し、メインコードに統合する前にプロジェクトのメンテナに検証してもらうことを強制するものです。

プロジェクトの設定で、選択したブランチに対する保護をオン・オフできます (具体的な場所は GitLab のバージョンに依存します - 以下の説明を参照)。

同じ設定ページで、保護されたブランチへのプッシュを開発者に許可することもできます。この設定をオンにすると、保護対象のブランチへのプッシュを拒否するのに必要な操作が制限されます。 git push --force (リベースなど)

GitLab 9.3以降

プロジェクトに移動: "設定" → "リポジトリ" → "保護されたブランチ"に展開"

スクリーンショットは10.3バージョンのものですが、この変更がいつ導入されたかはよくわかりません。

選択したブランチへのマージやプッシュを許可するユーザーを選択できるようになりました(例: ブランチから master ブランチへのすべての変更をマージ要求で行うように強制されます)。また、"Unprotect" をクリックすると、ブランチの保護を完全に解除することができます。

GitLab 9.0以降

GitLab 9.3 と同様ですが、"Expand" をクリックする必要がありません - すべてがすでに展開されています。

プロジェクト: "設定" → "リポジトリ" → "Protected branches" までスクロールダウンしてください。

GitLab 9.0以前

プロジェクト: "設定" → "保護されたブランチ" (あなたがプロジェクトのマスターである場合)。

次に、"Unprotect" または "Developers can push"をクリックします。