Hi Alp,
It's a big issue I have with the platform as well. I hope Mendix are paying attention that for any proper quality control this feature is a must.
Our standard workflow is dev -> stg -> main. We just assume the senior devs are allowed to do the branch merges and deployments and can always check via git history.
Features are then built of a feature line from dev.
When a feature is ready to go we do a final pull from dev -> feature -> dev so the conflicts are resolved off the dev line.
Sometimes, we need a hotfix into production. To do this, we create a new hotfix line from main. Do the fix there and merge main -> hotfix (similar as above to make sure all is good) -> main. We can then also cherry pick the commit back into dev and resolve conflicts there to make sure when it all gets propagated back up to main it works.
I've read two cool references that may be some help for you
https://www.mendix.com/blog/advanced-branching-merging-strategies-part-1-2/
and
https://www.linkedin.com/pulse/mendix-branching-strategies-mitchel-mol--wx8ke/