Push vs. Pull vs. Merge Requests
TLDR
“Pull request” is a leftover from the pre-GitHub days, when you’d email a maintainer asking them to pull your branch (and tell them where to find your fork). GitHub kept the name; GitLab later chose “merge request” because merging is the action you actually care about. The terminology is a social artifact, not a technical one.
Like any other student, I was first acquainted with Git through GitHub. Like the OP of the tweet above, I wondered the same thing but never really put much thought into it.
That changed when I moved to PayNet and started using GitLab. Not only did they use different terminology (merge request, or MR), it also rekindled my curiosity about how the terms differ and why they exist in the first place.
Thankfully, the thread below put the question to rest:
Before GitHub and GitLab, most dev work involving Git happened over mailing lists and self-hosted Git servers. When you wanted to land a change, you had to actively reach out to the maintainer.
What you’d ask them: “Hey, can you pull my branch into master?”
That message was the pull request. It was simply the abstraction people had at the time, and GitHub named its action after the workflow everyone was already using.
GitLab came along a couple of years later with “merge request” (MR), which in my honest opinion is more technically accurate. The action contributors actually care about is merging, not just pulling and reviewing.
But GitHub’s name makes sense too once you remember Git is distributed, and so were forks back then. Part of a pull request was telling the maintainer where to find your fork and how to pull your branch, because GitHub didn’t yet exist to host it for you.
The more you know. ¯_(ツ)_/¯
