MR vs PR
About
MR (Merge Request) and PR (Pull Request) are essentially the same concept with different names depending on the Git hosting service:
Pull Request (PR)
GitHub, Bitbucket
Merge Request (MR)
GitLab
Despite the different names, both mean:
A developer requests that their code (on a branch) be reviewed and merged into a mainline branch (like
main
,develop
, etc).
They provide a collaboration and review workflow for merging code — with diffs, comments, approvals, and automated checks.
Why the Naming Difference?
GitHub coined the term Pull Request:
You're requesting maintainers to "pull" your changes into their branch.
GitLab preferred Merge Request:
You're asking for your branch to be "merged" into another branch.
Both are semantically correct depending on perspective:
Pull Request: emphasizes the action from the maintainer’s side.
Merge Request: emphasizes the end result.
Do They Work Differently Technically?
No.
Both rely on the same underlying Git concepts:
Comparing two branches.
Showing diffs between them.
Option to merge (with or without rebase, squash, etc).
They just wrap this in a web interface and workflow management.
Purpose and Workflow
General Workflow
Create a Branch – Work on your feature/fix in isolation.
Push to Remote – Push your branch to the server (GitHub/GitLab).
Open a PR/MR – Create a pull/merge request.
Review Process:
Reviewers read the code.
Leave comments.
Request changes or approve.
CI/CD tests run automatically.
Merge the Code – Once approved, code is merged into the target branch.
This process supports:
Code quality enforcement
Peer reviews
Automated testing
Audit trails
Comparison
Used In
GitHub, Bitbucket
GitLab
Terminology Origin
From "git pull"
From "git merge"
Primary Focus
Request to pull code
Request to merge code
Supported Workflows
Forking and branching
Primarily branching
Web UI Behavior
Similar: diff, approve, comment
CI/CD Integration
Strong support in both
Code Review
Supported in both
Last updated
Was this helpful?