Resolving merge conflicts
When the target branch (e.g. master) has moved ahead of your MR branch, GitLab will report a conflict and the MR cannot be merged until it is resolved.
Simple rebase using the GitLab UI
In many cases GitLab can rebase your branch automatically. Open your Merge Request and click the Rebase button. If the rebase is successful, the MR is updated and ready for review. If it fails, GitLab will ask you to resolve the conflicts manually.
Manual rebase
When the GitLab UI rebase is not enough, resolve conflicts locally and push the result.
1. Get the latest code from the target branch
git checkout master
git pull origin master
2. Switch to your MR branch and rebase
git checkout <your-branch>
git rebase master
3. Resolve conflicts
For each file with conflicts, open it in your editor, resolve the conflict markers, and stage the file:
git add <file>
Use git status to confirm all conflicts are resolved before continuing.
4. Continue the rebase
git rebase --continue
Repeat steps 3–4 for each conflicting commit. Use git rebase --abort to cancel the whole operation at any point.
5. Push the rebased branch
Since the rebase rewrites history, a regular push will be rejected. Use --force-with-lease to push safely:
git push --force-with-lease
Note: --force-with-lease rejects the push if someone else has pushed to the same branch in the meantime, preventing accidental loss of their work.