設定場所
対象のリポジトリ - Settings - Branches - Branch protection rules
設定
管理者も含めて全員プルリクエスト必須(直push禁止)にするには、下記の設定2つにチェックを入れる必要があります。
// プルリクエスト必須となる(直pushできなくなる)
□ Require a pull request before merging
// 管理者権限の人も、ルールの対象にする
□ Do not allow bypassing the above settings
直push時のpushエラーログ
remote: error: GH006: Protected branch update failed for refs/heads/main.
remote: error: Changes must be made through a pull request.
To github.com:daijinload/test2.git
! [remote rejected] main -> main (protected branch hook declined)
error: failed to push some refs to 'github.com:daijinload/test2.git'
よしっ!!
余談
一時的にforce pushが必要となった場合、ルール内に一時的に許可できる設定Allow force pushes
があったりします。(・∀・)イイネ!!
ひとこと
個人のリポジトリで試したのですが、設定入れてもなぜかpush出来てしまい、少しハマりました。
上述した管理者権限の人も対象にする設定が必要というオチでした。
ちょっと分かりづらかったですが、ルールを複数設定出来たり、対象ブランチのワイルドカード指定もできるで、柔軟に設定できそうです。
複数人で開発していると、間違いなどあると思うので、設定を入れておくと良いと思います。