为什么git“pull request”不叫“推送请求”?

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

为什么叫做拉取请求而不是推送请求?

“推送”是强制目标存储库中存在的更改。 “拉”是抓取您的更改到目前存在的目标存储库。

一个“拉请求”是你请求目标库请抓住你的修改。

“推送请求”将是目标库,要求您推送您的更改。

当你发送一个拉取请求时,你要求(请求)正式回购所有者从你自己的回购中做出一些改变。 因此,“拉请求”。

tl; dr因为我不允许推,所以我会很好地向回购所有者提出要求,所以他们决定拉


谁可以将代码推送到存储库?

如果有人(可能是邪恶的,没有受过教育的或者未知的)能够来这里说,我只是把这个推给了你的主分支,搞砸了你的所有代码哈哈哈!

当然,你不希望他这样做。 默认情况下,安全网设置为无法推送到您的回购。 您可以 将其他人设置为合作者 ,然后他们可以推送。 你会给你信任的人。

所以,如果你不是合作者,并试图推动,你会得到一些错误,表明你没有权限。


那么其他开发人员如何推动回购他们没有被授予推动?
你不能给每个一个访问权限,但你想给别人一个出口/入口点,这样他们就可以向回购所有者提出请求,把这个代码join到回购中。

最后,他们从他们的fork中发出pull 请求 ,所有者将决定是否合并请求。

拉请求:我要求我的。

这是“请求”这个词在这些行动中的关键。 你也可以把它想成是说:“我有请求你来做我的工作,你接受吗?” – “拉取请求”。

起初有点混乱,但最终有意义。