Featured image of post GitHub で main ブランチを保護するときに何をすればいいかのメモ

GitHub で main ブランチを保護するときに何をすればいいかのメモ

これはなに Link to this heading

GitHubでmainブランチを保護するためのルール設定のメモ。

前提 Link to this heading

GitHubでは、ブランチ保護にルールを設定できる。

ここでは、メインブランチの保護にフォーカスし、上記の保護ルールをどのように設定すればいいのかを述べる。

ルール集 Link to this heading

mainっぽい名前のブランチの作成を禁止する Link to this heading

main*に"Restrict creations"を設定する。*をつけるのが肝。

mainブランチそのものの更新をすべて停止する Link to this heading

mainに"Restrict updates"を設定する。この設定を有効にすると、プッシュだけでなくリベースやマージなどすべての更新を阻止できる。

mainブランチの削除を禁止する Link to this heading

mainに"Restrict deletions"を設定する。

デプロイを保証する Link to this heading

mainに"Require deployments to succeed"を設定する。

署名付きコミットを要求する Link to this heading

mainに"Require signed commits"を設定する。

プルリクエスト(PR)を要求する Link to this heading

mainに"Require a pull request before merging"を設定する。

  • 自分だけの開発なら、“Required approvals"は0にする。他者に必ずレビューしてもらいたいなら、“Required approvals"を1以上にする
  • “Dismiss stale pull request approvals when new commits are pushed"は、有効にするのがベター
  • 自分だけレビューなくマージして、ほかの人には自分のレビューを強制する場合、CODEOWNERSファイルを作成して、“Require review from Code Owners"を有効にするとよい
  • “Require conversation resolution before merging"は有効でもいいかも

CI/CDの通過を強制する Link to this heading

mainに"Require status checks to pass"を設定する。

  • “Require branches to be up to date before merging"は有効にするのがベスト

強制pushを禁止する Link to this heading

mainに"Block force pushes"を有効にする。

リポジトリを公開している際のルール集 Link to this heading

  • デプロイしているブランチに"Require deployments to succeed"を設定する
  • 自分が署名付きコミットを使っているなら、保護したいブランチに"Require signed commits"を設定する
  • 保護したいブランチに"Require a pull request before merging"を設定する

参考文献・URL Link to this heading

Licensed under CC BY-NC-SA 4.0
最終更新 2月 15, 2026
Hugo で構築されています。
テーマ StackJimmy によって設計されています。