为什么GitHub打电话给外国提交,“拉请求”?

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

从我的理解, git pull将把所有的改变从一个远程仓库转移到当前的工作分支上。 然后将这些更改与FETCH_HEAD合并。 ( Git Pull )

因此,看看git push …推动实际上将提交的更改推送到存储库。 这不是你在做一个Git回购? 提交“请求”来合并你的代码? 那为什么不叫“推送请求”?

“拉取请求”这个术语来自于多less个开源项目组织起来的分布式特性。 而不是仅仅将更改推送到存储库(就像使用中央存储库(例如使用Subversion)一样),您将分别发布更改,并要求维护人员进行更改。 然后维护人员可以查看更改并进行拉取。

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

我将分叉您的github存储库,并为我的工作创build一个新的分支。 一旦我对当前的实现感到满意,我会向你发送一个请求, git pull我的分支进入你的仓库(因为我没有权限直接推送)。 当你做git pull你有select哪个分支拉,你想拉到哪里。 也许你不想直接进入你的master分支,而是直接进入其他分支来检查代码。

git书有这样不同的工作stream程的一个很好的部分。

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

当您提交拉取请求时,您可以要求回购所有者在您的本地回购(即合并)中进行更改。 然后,这个回购将被公布(通过git push )到一个公共回购,但这是暗示的。

你不能调用这个“推送请求”,因为没有人推动你的改变,他们拉他们。

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