You may have encountered both terms “pull request” and “merge request”. Now you are wondering what is the difference. To be honest, there is no difference in functionality between “pull request” and “merge request” , they are different names for the same process. So why they are separate terms?
The function of both is to create an intermediate step between pushing the changes to a branch and merging them. It’s a formal step that allows for:
- Describing the changes in a plain language
- Peer review and discussion
- Running CI/CD process on the proposed changes
- Integration with other platform features - like issue trackers, etc.
- Adding further changes in necessary
- Resolving merge conflicts
- Accepting or declining the changes
This term is specifically used in GitHub and BitBucket. Both are code-hosting platforms. The name indicates that you are requesting your changes to be pulled upstream, to a branch like dev or main. Of course, underneath it would mean the creation of a merge commit.
This term on the other hand is used in GitLab, another code-hosting platform. This time the name indicates a request to merge your changes to one of the upstream branches.
Basically, in both cases changes are intended to be merged and, as a result, pulled to the upstream branch.