Take a look at Settings -> General -> Merge requests. Here you can configure the merge options.
If you configure a fast-forward merge, no merge commit is created and you get the rebase option if a merge conflict exists.

See detailed explanation of these options in the documentation.
Answer from danielnelz on Stack Overflowautomation - Automatically rebase Merge Request branch when target branch has changed - Stack Overflow
Can I merge merge requests myself?
Help needed: merge requests without rebasing?
Merge trains with FF merge and rebasing
I don't know why I can't find anything on this topic, perhaps the question is just plain stupid.
I have to follow a certain workflow which in this case does not allow me to rebase nor merge one feature branch into another.
If I wasn't using GitLab I would simply create the necessary changes to resolve the conflict myself, merge, then solve the conflict using whatever was necessary to do so, thus creating a merge commit which explains the necessary changes to incorporate feature-a into branch-b.
How can I do this using GitLab though? All merge commits are created by GitLab, never myself. All branches except my own branches are protected. GitLab only tells me to "resolve locally" with a guide that simply seems to imply rebase is going to solve my problems (it won't), providing no further guidance.
Can I just merge locally, then push and GitLab will know my merge commit is in reference to the merge request? Will it allow my push because the merge request has been approved?
If so, do I have to add the references like "See merge request !123 for ..." to the merge commit description myself?