web-dev-qa-db-ja.com

Gitlabへのプッシュを強制する方法

git Push --force gitlab master                                                                                  
Enumerating objects: 50, done.
Counting objects: 100% (50/50), done.
Delta compression using up to 8 threads
Compressing objects: 100% (29/29), done.
Writing objects: 100% (40/40), 12.22 KiB | 4.07 MiB/s, done.
Total 40 (delta 26), reused 18 (delta 11)
remote: GitLab: You are not allowed to force Push code to a protected branch on this project.
To gitlab.com:xxx/yyyy.git
 ! [remote rejected]     master -> master (pre-receive hook declined)
error: failed to Push some refs to '[email protected]:xxx/yyyy.git'

コミットをGitlabにプッシュするにはどうすればよいですか?いくつかのリモコンを使用していますが、他のリモコンも問題なく完了しました。

git Push --force some_other_remote master      
12
qazwsx

保護されたブランチの取り扱いに関する公式ドキュメント から:

  1. プロジェクトの設定➔リポジトリに移動します
  2. スクロールして[保護されたブランチ]セクションを見つけます。
  3. [ブランチ]ドロップダウンメニューから、保護するブランチを選択し、[保護]をクリックします。

上記の手順に従うと、以下のようなボックスが表示されます。

画像ソース: https://docs.gitlab.com/ee/user/project/protected_branches.html

そこでオレンジをクリックできます Unprotect プッシュを強制したいブランチのボタン、つまりmaster

ナビゲーションバーを移動したくない場合は、次のURLテンプレートに入力することもできます。

https://gitlab.com/<USERNAME>/<PROJECTNAME>/settings/repository#js-protected-branches-settings

<USERNAME><PROJECTNAME>を、それぞれ特定のユーザー名とプロジェクト名に置き換えます。

さらにヘルプ:

14
Eric Leung
  1. マスターブランチの保護を一時的に解除します。
  2. 以前と同じようにプッシュします。
  3. 次に、保護をブランチに復元します。
2
qazwsx

GitLabとして documentation :デフォルトでは、保護されたブランチは4つの単純なことを行います。

  • まだ作成されていない場合は、Maintainer権限を持つユーザーを除くすべてのユーザーが作成できないようにします。
  • 許可された権限を持つユーザー以外の全員からのプッシュを防ぎます。
  • anyoneがブランチにforce pushingするのを防ぎます。 <-----
  • 誰もブランチを削除できないようにします。

そのため、一時的にブランチの保護を解除する必要があります。最後に、元の状態に戻します。

それをするために:

  1. プロジェクトの設定➔リポジトリに移動します
  2. スクロールして[保護されたブランチ]セクションを見つけます。
  3. 強制的にプッシュするブランチの保護を解除しました
  4. 強制プッシュ
  5. プロジェクトの設定projectリポジトリ(gitlab)ですべての設定を元に戻します
0
Ali Maddi