用于合并分支和官方存储库的术语是“拉取请求”。这很令人困惑,因为我似乎是在请求将我的更改推送到官方存储库。

为什么它被称为拉请求而不是推请求?


当前回答

恐怕大多数答案都回答了“pull request”是什么意思?“push request”是什么意思?而不是OP的问题:为什么它被称为拉请求而不是推请求?

通常这种问题替换是可以接受的,但在这种情况下,OP显然知道这些替换问题的答案,所以回答它们并不是很有帮助。

只有在GitHub创造了这个词的人知道确切的答案。然而,似乎很明显,这个术语选择反映了类似以下关于“从外部进入存储库的更改”现象的观点:维护者执行操作(拉)。

然而,请求也是一个动作,动作的执行者不是维护者,而是提交者(他做了更多的动作,即工作)。因此,术语“拉请求”造成了关于代理是谁的混乱。最终产生混淆的原因是请求的递归性质:请求既是主代理的操作,也是第二个代理对未来操作的请求。

这种情况非常类似于现在常见的语言结构,如“我们建造了我们的房子”(用来代替“我们付钱给别人建造我们的房子”),因为主要行动的责任从明显的原始代理转移到履行管理社会角色的次要代理。

人们可以由此得出结论,选择术语的原因是使“管理工作是一流劳动”这一观点合法化。此外,对这一术语选择感到困惑的原因可能是,非管理者的员工自然有不同的观点。

其他回答

如果您在存储库中有一个代码更改,并希望将其移动到目标存储库,那么:

“Push”是你强制目标存储库中出现的更改(git Push)。 “Pull”是目标存储库抓取你的更改,以呈现在那里(git从另一个repo拉)。

“拉取请求”是您请求目标存储库获取您的更改。

“推送请求”将是目标存储库请求您推送更改。

这样思考。本地存储库vs远程存储库。

当你从本地推送。(git push) -换句话说,远程存储库正在从您(本地)拉代码。

你在提出要求。所以,问问你自己,

你想要远程存储库从你拉代码吗?-拉请求。

为了更好地理解它并永远记住它,你需要描绘它。

想象一个大的、活的树(作为您的存储库)。这棵树太坚固了,你不能将一个分支推入或添加一个新部分(象征创建一个新分支或你将代码推入其中),相反,你必须要求这棵树将一个分支拉入主干或从你那里获得更改。

术语“拉请求”来自于分布式的本质。而不是仅仅将您的更改推入存储库(就像您使用集中式存储库所做的那样,例如Subversion),您将单独发布您的更改,并要求维护者拉入您的更改。然后维护者可以查看更改并执行所谓的拉取。

所以你基本上是“请求”那些对你想要贡献的回购有写权限的人,从你的回购中“拉”出来。

Pull请求可以让你告诉其他人你已经推送到GitHub存储库分支的更改。一旦打开了拉取请求,您就可以与协作者讨论和检查潜在的更改,并在将更改合并到基本分支之前添加后续提交。 Github的解释

简单地说,因为您请求Pull(获得一份副本)代码,但在Push中,您请求通过将代码推入目标来集成代码。

当你发送一个拉取请求时,你是在请求(请求)官方的回购所有者从你自己的回购中拉取一些更改。因此出现了“拉请求”。