Meaning of "Allowed to push" and "Allowed to merge" in Gitlab

Allowed to push means just that - the user is allowed to git push to the branch.

Allowed to merge means that the user is allowed to accept merge requests into that branch.


Quoting Gitlab Documentation here

Using the "Allowed to push" and "Allowed to merge" settings, you can control the actions that different roles can perform with the protected branch. For example, you could set "Allowed to push" to "No one", and "Allowed to merge" to "Developers + Masters", to require everyone to submit a merge request for changes going into the protected branch

Allowed to push allows the set of people to directly fast-forward commit and non-force push to a particular branch, ideally for protected branches it should be allowed only for Maintainers.

Allowed to merge allows the set of people to merge/pull request into a branch, which for Protected branches like master, should ideally be only for Maintainers again.