When a new branch is created and pushed it tries to match it against the protected branch pattern and if matched it creates a protected branch with disabled developers push.
The feature is disabled if the protected branch pattern is empty.
Project settings page UI: