为什么GitHub会调用外部提交的“拉取请求”?

时间:2013-02-11 17:04:09

标签: git github terminology

我很好奇为什么GitHub调用提交合并,“拉请求。”

据我了解,git pull会将所有更改从远程存储库提取到当前工作分支。然后将这些更改与FETCH_HEAD合并。 (Git Pull

所以看看git push ...推送实际上会将已提交的更改推送到存储库。并不是你用Git回购做的事情吗?提交“请求”以合并您的代码?那么为什么它不被称为“推送请求”?

5 个答案:

答案 0 :(得分:61)

术语“拉取请求”来自于有多少开源项目组织起来的分布式特性。而不是仅仅将更改推送到存储库(就像使用集中式存储库一样,例如使用Subversion),您将单独发布更改并要求维护者拉入您的更改。然后维护者可以查看更改并执行拉动。

答案 1 :(得分:9)

拉取请求是指对存储库没有推送访问权限的贡献者想要提交包含在项目中的代码。例如,如果您在github上有一个项目,并且您是唯一拥有提交权限的人,并且我想在项目中包含代码,我该怎么办?

我将分叉您的github存储库并为我的工作创建一个新分支。一旦我对当前的实现感到满意,我就会向git pull我的分支机构发送请求到您的存储库(因为我无权直接推送)。执行git pull时,您可以选择要拉出的分支以及要拉到的分支。也许您不想直接进入master分支,而是进入其他分支来检查代码。

git book对于不同的工作流程有一个很好的部分。

答案 2 :(得分:4)

当您将补丁发送给其他人时,您希望该人将您的更改合并到他的存储库中。现在,pull是一个获取和合并。所以,如果那个人拉你的改变,他也会合并它,这就是你想要的。

答案 3 :(得分:2)

当您提交拉取请求时,您要求回购的所有者在其本地仓库中提取您的更改(即合并它们)。然后该回购将通过git push)发布到公共回购,但这是隐含的。

您无法调用此“推送请求”,因为没有人推送您的更改,他们会将其拉出来。

答案 4 :(得分:1)

您将提交从私有存储库推送到公共存储库。但是,您不能强制更改其他人的存储库,因此您要求他们从您的公共存储库中删除它们。