Skip to main content
ドキュメントへの更新が頻繁に発行されており、このページの翻訳はまだ行われている場合があります。 最新の情報については、「英語のドキュメント」を参照してください。

ブランチ保護ルールを管理する

ブランチ保護ルールを作成して、1 つ以上のブランチに特定のワークフローを強制することができます。たとえば、承認レビューを要求したり、保護されたブランチにマージされるすべての pull request について状態チェックを渡したりすることができます。

この機能を使用できるユーザー

People with admin permissions to a repository can manage branch protection rules.

保護されたブランチは、GitHub Free及びOrganizationのGitHub Freeのパブリックリポジトリ、GitHub Pro、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Serverのパブリック及びプライベートリポジトリで利用できます。 詳細については、「GitHub's products」を参照してください。

ブランチ保護ルールについて

リポジトリ内のブランチ保護ルールは、特定のブランチ、すべてのブランチ、または fnmatch 構文で指定する名前のパターンに一致するあらゆるブランチに対して作成できます。 たとえば、release という単語を含む任意のブランチを保護するには、*release* のブランチ ルールを作成します。

ワイルドカード構文 * を使用して、リポジトリ内の現在および将来のブランチすべてに対する規則を作成できます。 GitHub は File::FNM_PATHNAME フラグを File.fnmatch 構文で使用するため、ワイルドカードがディレクトリ区切り記号 (/) と一致しません。 たとえば、qa/* は、qa/ で始まり、1 つのスラッシュを含むすべてのブランチと一致します。 複数のスラッシュを含めるには qa/**/* を使用します。また、qa**/**/* を使用して qa 文字列を拡張すると、規則をさらに包括的にすることができます。 ブランチ規則の構文オプションの詳細については、fnmatch のドキュメントを参照してください。

リポジトリが同じブランチに影響する複数の保護されたブランチのルールを持っているなら、特定のブランチ名を含むルールがもっとも高い優先順位を持ちます。 同じ特定のブランチ名を参照する保護されたブランチのルールが複数あるなら、最初に作成されたブランチルールが高い優先順位を持ちます。

*?] などの特殊文字を含む、保護されたブランチのルールは、作成された順序で適用されるので、これらの文字が含まれる規則は古い方が高い優先順位を持ちます。

既存のブランチのルールに例外を作成するため、特定のブランチ名に対するルールなど、優先度の高いブランチ保護ルールを新しく作成できます。

使用可能なブランチ保護設定それぞれの詳細については、「保護されたブランチについて」を参照してください。

ブランチ保護ルールを作成する

ブランチのルールを作成する際に、指定したブランチがリポジトリにしている必要はありません。

  1. GitHub.com で、リポジトリのメイン ページへ移動します。 1. リポジトリ名の下の [ 設定] をクリックします。 リポジトリの設定ボタン

  2. サイドバーの [コードと自動化] セクションで、 [ ブランチ] をクリックします。

  3. [Branch protection rules](ブランチ保護ルール) の横にある [Add rule] (ルールの追加) をクリックします。 ブランチ保護ルールの [Add](追加) ボタン

  4. "Branch name pattern(ブランチ名のパターン)"の下で、保護したいブランチの名前もしくはパターンを入力してください。 ブランチのルール フィールド

  5. 必要に応じて、必須の pull request を有効化します。

    • Protect matching branches で、 [Require a pull request before merging](マージ前に pull request 必須) を選択します。 pull request レビュー制限のチェックボックス
    • 必要に応じて、pull request のマージ前の承認を必須にするには、 Require approvals を選択し、 Required number of approvals before merging ドロップダウン メニューをクリックし、ブランチで必須にする承認レビューの数を選択します。 必要なレビュー承認数を選択するドロップダウン メニュー
    • 必要に応じて、コードを変更するコミットがブランチにプッシュされたときに pull request 承認レビューを却下するには、 [Dismiss stale pull request approvals when new commits are pushed](新しいコミットがプッシュされたときに古い pull request 承認を却下する) を選択します。 新たなコミットがプッシュされたときに古い pull request の承認を却下するチェックボックス
    • 必要に応じて、pull request が影響するコードに所有者が指定されているとき、コード所有者のレビューを必須にするには、 Require review from Code Owners を選択します。 詳細については、「コードオーナーについて」を参照してください。 [Require review from code owners] (コード所有者のレビュー必須)
    • 必要に応じて、pull request が必須であるときに、特定のアクターがそれを作成せずにコードをブランチにプッシュできるようにするには、 [Allow specified actors to bypass required pull requests](指定したアクターが必須 pull request をバイパスすることを許可) を選択します。 次に、pull request の作成をスキップすることを許可するアクターを探して選択します。 特定のアクターが pull request 要件をバイパスすることを許可するチェックボックス
    • 必要に応じて、リポジトリが組織に含まれる場合に、 [Restrict who can dismiss pull request reviews](pull request レビューを却下できるユーザーを制限) を選択します。 次に、pull request レビューの却下を許可するアクターを探して選択します。 詳細については、「プル リクエスト レビューの却下」を参照してください。 [Restrict who can dismiss pull request reviews] (pull request レビューを却下できるユーザーを制限) チェックボックス
    • 必要に応じて、最後のユーザー以外のユーザーに、ブランチにプッシュしてマージ前に pull request を承認するよう要求するには、 [Require approval from someone other than the last pusher] (最後のプッシャー以外のユーザーに承認を要求する) を選びます。 詳細については、「保護されたブランチについて」を参照してください。 最後のプッシャー以外のユーザーにレビューを要求する
  6. 必要に応じて、ステータスチェック必須を有効化します。 詳細については、「ステータスチェックについて」を参照してください。

  7. 必要に応じて、 Require conversation resolution before merging を選択します。 [マージ前に会話の解決必須] オプション

  8. 必要に応じて、 Require signed commits を選択します。 [Require signed commits](署名済みコミット必須) オプション

  9. 必要に応じて、 Require linear history を選択します。 [Require linear history](直線状の履歴必須) オプション

  10. 必要に応じて、マージ キューを使用して pull request をマージするには、 [Require merge queue](マージ キュー必須) を選択します。 マージ キューの詳細については、「マージ キューの管理」を参照してください。 [Require merge queue](マージ キュー必須) オプション

    ヒント: 現在、pull request マージ キュー機能はパブリック ベータ版限定であり、変更される可能性があります。 Organization の所有者は、待機リストに参加することでベータへの早期アクセスを要求できます。

  11. 必要に応じて、マージ前に変更を正常にデプロイする必要がある環境を選択するには、 Require deployments to succeed before merging を選択してから環境を選択します。 デプロイ成功必須オプション

  12. 必要に応じて、 [Lock branch] (ブランチのロック) を選んで、ブランチを読み取り専用にします。 ブランチをロックするチェックボックスのスクリーンショット

    • 必要に応じて、フォークの同期を許可するには、 [フォークの同期を許可する] をオンにします。 フォークの同期を許可するチェックボックスのスクリーンショット
  13. 必要に応じて、 [上の設定のバイパスを許可しない] を選択します。 [上の設定のバイパスを許可しない] チェックボックス

  14. 必要に応じて、GitHub Free 組織によって所有されているパブリック リポジトリと、GitHub Team または GitHub Enterprise Cloud を使って組織によって所有されているすべてのリポジトリで、ブランチ制限を有効にします。

    • Restrict who can push to matching branches を選択します。 ブランチ制限のチェックボックス
    • 必要に応じて、一致するブランチの作成も制限するには、 Restrict pushes that create matching branches を選択します。 ブランチ作成制限のチェックボックス
    • 保護されたブランチにプッシュできるアクセス許可または一致するブランチを作成するアクセス許可を設定する、ユーザ、チーム、またはアプリを探して、選択します。 ブランチ制限の検索
  15. 必要に応じて、Rules applied to everyone including administrators の下で [Allow force pushes](フォース プッシュを許可) を選択します。 [Allow force pushes] (フォース プッシュを許可) オプション その後、ブランチにフォース プッシュできるユーザーを選びます。

    • Everyone を選択し、リポジトリに対して少なくとも書き込みアクセス許可を持つすべてのユーザー (管理者権限を持つユーザーを含む) が、ブランチにフォース プッシュできるようにします。

    • [Specify who can force push](フォース プッシュできるユーザーを指定する) を選択し、ブランチへのフォース プッシュを特定のアクターに許可します。 次に、そのようなアクターを探して選択します。 プッシュを強制できるユーザーを指定するオプションのスクリーンショット

      詳細については、「フォース プッシュを許可」を参照してください。

  16. 必要に応じて、 Allow deletions を選択します。 ブランチの削除を許可するオプション

  17. Create をクリックしてください。

ブランチ保護ルールを編集する

  1. GitHub.com で、リポジトリのメイン ページへ移動します。 1. リポジトリ名の下の [ 設定] をクリックします。 リポジトリの設定ボタン

  2. サイドバーの [コードと自動化] セクションで、 [ ブランチ] をクリックします。

  3. 編集しようとするブランチ保護規則の右側の [編集] をクリックします。 [編集] ボタン

  4. ブランチ保護ルールを自由に変更してください。

  5. [変更を保存] をクリックします。 [変更を保存] ボタン

ブランチ保護ルールを削除する

  1. GitHub.com で、リポジトリのメイン ページへ移動します。 1. リポジトリ名の下の [ 設定] をクリックします。 リポジトリの設定ボタン

  2. サイドバーの [コードと自動化] セクションで、 [ ブランチ] をクリックします。

  3. 削除しようとするブランチ保護規則の右側の [削除] をクリックします。 [削除] ボタン