Why does GitHub call foreign submissions, a “Pull Request”?

时光毁灭记忆、已成空白 提交于 2019-11-29 22:04:49

The term “pull requests” comes from the distributed nature of how many open source projects organize themselves. Instead of just pushing your changes into the repository (like you would do with a centralized repository, e.g. with Subversion), you are publishing your changes separately and ask the maintainer to pull in your changes. The maintainer then can look over the changes and do said pull.

A pull request is when a contributor that does not have push access to a repository wants to submit code for inclusion in the project. For instance, if you have a project on github and you are the only person with commit rights and I want to include code in your project what do I do?

I'll fork your github repository and create a new branch for my work. Once I'm happy with the current implementation I'll send you a request to git pull my branch into your repository (since I don't have rights to push directly). When you do git pull you have the option of which branch to pull and where you want to pull to. Perhaps you don't want to pull directly into your master branch but into some other branch to examine the code.

The git book has a nice section on different work flows like this.

When you send your patch to someone else, you want that person to merge your change into his repository. Now, a pull is a fetch and a merge. So, if that person pulls your change, he will have merged it, too, which is what you want.

When you submit a pull request, you ask the owner of the repo to pull your changes in their local repo (i.e. merge them). Then that repo will be published (via git push) to a public repo but this is implied.

You cannot call this "push request" because nobody pushes your changes, they pull them.

You push commits from from your private repository to your public repository. You can't however, force changes on someone else's repository, so you request that they pull from your public repository to theirs.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!