Ale*_*íaz 369 git github pull-request
用于将分支与官方存储库合并的术语是"拉取请求".这很令人困惑,因为我似乎要求将我的更改推送到官方存储库.
为什么称为拉取请求而不是推送请求?
Sve*_*ven 309
如果您的存储库中有代码更改,并希望将其移动到目标存储库,则:
git push
)中存在的更改.git pull
来自其他repo)."拉取请求"是您请求目标存储库取悦您的更改.
"推送请求"将是请求您推送更改的目标存储库.
JB *_*zet 76
当您发送拉取请求时,您要求(请求)官方回购所有者从您自己的回购中提取一些更改.因此"拉动请求".
Hon*_*ney 30
tl; dr因为我不被允许推动,我只是很好地向回购所有者提出请求,所以他们决定拉
谁可以将代码推送到存储库?
如果任何人(可能是邪恶的或未受过教育的或未知的)能够来这里说,我只是把它推到你的主分支并搞砸了你所有的代码HAHAHA!?
当然你不希望他那样做.默认设置安全网,因此没有人可以推送您的回购.您可以 将其他人设置为协作者,然后他们就可以推送.您可以向您信任的人提供此类访问权限.
因此,如果您不是合作者并尝试推送,您将收到一些错误,表明您没有权限.
那么其他开发者如何推动回购他们没有获得推动权限?
您不能授予所有人访问权限,但您希望为其他人提供一个出口/入口点,以便他们可以向回购权所有者发出" 将此代码提取到回购"的请求.简单地说,通过使repo可访问,他们可以分叉...在他们自己的fork中进行更改.将他们的更改推送到自己的分支.一旦它进入他们自己的远程仓库:
他们从他们的fork 发出pull请求,repo的所有者将决定是否合并pull请求.
另外一个半相关的问题我建议阅读git push中究竟发生了什么?为什么git push不像git merge那样考虑?
hep*_*dad 24
拉请求:我请求你来拉我的.
小智 6
我想把一些东西推送到别人的仓库。
我没有推(或拉,就此而言)的许可。
所有者/合作者具有权限。他们可以拉也可以推。我推不动。
所以,我要求他们从我这里执行拉取——这间接意味着我要求他们接受我的推送。
所以,没有推送请求。只为一拉。并接受推动。
因此,“拉”请求。而不是“推送”请求。
小智 5
恐怕这些答案中的大多数都解决了“拉取请求”是什么意思的问题?或“推送请求”是什么意思?而不是 OP 的问题:为什么将其称为拉取请求而不是推送请求?
通常这种替换问题是可以接受的,但在这种情况下,很明显 OP 知道这些替换问题的答案,因此回答它们并不是很有帮助。
只有 GitHub 上创造这个词的人肯定知道。然而,这个术语选择似乎很明显反映了类似于以下关于“更改从外部进入存储库”现象的观点:维护者执行操作(拉)。
然而,一个请求也是一个动作,那个动作的执行者不是维护者而是提交者(他做了更多的动作,即工作)。因此,术语“拉取请求”会造成对代理是谁的混淆。由于请求的递归性质,最终会出现混淆:请求既是主要代理的操作,也是第二代理对未来操作的请求。
这种情况非常类似于现在常见的语言结构,例如“我们建造了我们的房子”(用于代替“我们花钱请别人来建造我们的房子”),因为主要行动的责任从明显的原始代理人转移到履行管理社会角色的二级代理人。
可以由此得出结论,术语选择的原因是管理工作是一等劳动的观点的合法化。此外,对这个术语选择感到困惑的原因可能是非经理员工自然有不同的观点。