プロジェクトで開発者アクセス権を持っているときにコードをgitにプッシュすると問題が発生しますが、マスターアクセス権があればすべて問題ありません。問題はどこから来たのですか?そしてそれを修正する方法は?
エラーメッセージ:
エラー:このプロジェクトの保護されたブランチにコードをプッシュすることはできません。
...
エラー:一部の参照を...にプッシュできませんでした
プロジェクトで開発者アクセス権を持っているときにコードをgitにプッシュすると問題が発生しますが、マスターアクセス権があればすべて問題ありません。問題はどこから来たのですか?そしてそれを修正する方法は?
エラーメッセージ:
エラー:このプロジェクトの保護されたブランチにコードをプッシュすることはできません。
...
エラー:一部の参照を...にプッシュできませんでした
回答:
問題ありません-すべてが期待どおりに動作します。
GitLabでは、一部のブランチを保護できます。デフォルトでは、Maintainer / Ownerユーザーのみが保護されたブランチにコミットできます(権限のドキュメントを参照)。master
ブランチはデフォルトで保護されています-メインコードに統合する前に、開発者はプロジェクトメンテナーによって検証されるマージリクエストを発行する必要があります。
プロジェクト設定で選択したブランチの保護をオンまたはオフにすることができます(GitLabのバージョンによって異なります-以下の手順を参照してください)。
同じ設定ページで、開発者が保護されたブランチにプッシュすることを許可することもできます。この設定をオンにすると、保護は必要な操作git push --force
(リベースなど)の拒否に限定されます
プロジェクトに移動:「設定」→「リポジトリ」→「保護されたブランチ」の「展開」
この変更がいつ導入されたかはわかりませんが、スクリーンショットは10.3バージョンのものです。
選択したブランチへのマージまたはプッシュを許可するユーザーを選択できるようになりました(たとえばmaster
、プッシュをまったくオフにして、ブランチへのすべての変更をマージリクエストで強制的に行うことができます)。または、「保護解除」をクリックして、ブランチから保護を完全に削除できます。
GitLab 9.3と同様ですが、[展開]をクリックする必要はありません。すべてが既に展開されています。
プロジェクトに移動します:[設定]→[リポジトリ]→[保護されたブランチ]まで下にスクロールします。
プロジェクト:「設定」→「保護されたブランチ」(特定のプロジェクトの少なくとも「マスター」である場合)。
次に、「保護解除」または「開発者がプッシュできる」をクリックします。
GitLab Enterprise Edition 9.3.0の場合
デフォルトでは、マスターブランチは保護されているため、保護を解除します:)
1-「プロジェクト」を選択します
2-「リポジトリ」を選択します
3-「ブランチ」を選択
4-「プロジェクト設定」を選択します
5-「保護されたブランチ」で「展開」をクリックします
6-「保護解除」ボタンをクリックした後
リンクごとに変更してみてください
https://docs.gitlab.com/ee/user/project/protected_branches.html
メンテナーや開発者がコミットできるようにプロジェクトを無保護にします
この問題が発生したのはWindowsでした。
ユーザー名とパスワードを入力する前に発生するため、このエラーは奇妙です。キャッシュまたはこのようなものがあった場合はどうなりますか?私はそれをオンラインで掘って、この答えをgitlabのサポートフォーラムで見つけました:
「コントロールパネル=>ユーザーアカウント=>資格情報の管理=> Windows資格情報」を開きます。https://@github.comに 2つ見つかり、1つは間違ったユーザーでした。私はそれを削除し、次の「git push」で再プロンプトが表示され、正しい資格情報が提供され、機能しました!その他の注意事項-これはgitリモートで発生する可能性があります。
Windows資格情報で、古いアカウントの2つのGitLabエントリを見つけました。私は両方を削除しましたが、うまくいきました!
パネル:
リポジトリで同じ問題が発生しました。私はリポジトリのマスターですが、そのようなエラーがありました。
プロジェクトの保護を解除してから再度保護しましたが、エラーは発生しません。
以前のプッシュと問題のあるプッシュの間でgitlabバージョンをアップグレードしました。このアップグレードによってバグが発生したと思います。