Git ‘remotes’ can have rules (hooks that run on push, and decline).
GitHub has ‘branch protection’ which prevents various changes. But GitHub is not Git. A common misconception lately due to its popularity.
Git itself is nothing more than a set of tools to manage the versions of a repository. How you choose to use it is up to you, and what you allow.
Solo developer? Rebase, or don’t.
Do you collaborate? Maybe consider using a SaaS product like GitHub and setup your rules.