# Merge Requests (MRs)
A Merge Request (MR) is [[GitLab]]'s term for proposing code changes and requesting review before merging into a target branch. It is functionally equivalent to [[GitHub]]'s [[Pull Requests (PRs)|Pull Request (PR)]]. The name simply emphasizes the merging action rather than the pulling.
MRs integrate tightly with GitLab's built-in [[CI CD pipelines]] (cfr [[Contiunous Integration (CI)]], [[Continuous Delivery (CD)]] & [[Continuous Deployment (CD)]]), allowing automatic testing, security scanning, and deployment previews before code is merged.
## GitLab-Specific Features
- **Merge trains**: Queue MRs to merge sequentially after passing CI
- **Merge when pipeline succeeds**: Auto-merge after CI passes
- **Squash commits**: Combine commits on merge
- **Delete source branch**: Clean up after merge
- **Approvals**: Require specific reviewers or groups
- **Code owners**: Auto-assign reviewers by file path
## Workflow
1. Create a feature branch
2. Push commits to GitLab
3. Open Merge Request against target branch
4. CI/CD pipeline runs automatically
5. Reviewers approve changes
6. Merge (manually or automatically)
## MR vs PR Terminology
| GitLab | GitHub |
|--------|--------|
| Merge Request (MR) | Pull Request (PR) |
| Merge | Merge/Squash/Rebase |
| Assignee | Assignee |
| Reviewer | Reviewer |
## References
- https://docs.gitlab.com/ee/user/project/merge_requests/
## Related
- [[Pull Requests (PRs)]]
- [[Git]]
- [[GitLab]]
- [[GitHub]]
- [[DevOps]]