我是使用Git的新手,所以如果这是微不足道,我道歉。我有一个使用Github和EGit设置的私有存储库。
要使用远程版本(本质上是git pull
)更新并合并我的本地存储库分支,我在Eclipse中使用Team > Pull
。
要合并分支进入主分支,我必须请求并随后批准Github上的提取请求。
调用
git pull
和发送拉取请求之间有什么区别?
我发现这与 Fork and Pull 协作开发模型有关,用于代码审核。我想我理解拉取请求的动机和实用性,但具体到底是什么?
答案 0 :(得分:47)
如果使用git pull
,则将更改从远程存储库中提取到您的。
如果您将拉取请求发送到另一个存储库,您会要求他们的维护人员将您的更改提取到他们的中(您或多或少要求他们使用{{1来自您的存储库)。
如果您是该存储库的维护者,那么假设您在该工作流程中扮演两个角色,那么您似乎会变得更加困难。您也可以将您的开发分支本地合并到主分支中,并将该主分支直接推送到您的GitHub存储库。
(作为旁注,如果您是Git新手,我建议您使用git pull
,然后使用git fetch
代替git merge
。git pull
实际上{ {1}}后跟git pull
,但单独执行这些操作会让您更好地控制潜在的冲突。)
答案 1 :(得分:6)
拉取请求在某些更改中请求存储库的维护者git pull
(如名称所示)。 GitHub提供了一个易于使用的附加界面,简化了对此类请求的审核
您不需要使用它来合并某个分支。但是可以使用它,重新检查是否所有更改都已准备好合并可能会有所帮助。如果您不想要或不需要额外的安全性,您只需git merge
分支。
git
本身也有一个创建拉取请求的命令,专门用于邮件列表。您可以使用git request-pull
命令请求生成。事实上,使用此命令需要为某些项目提交拉取请求!该命令的输出类似于此(取from the official git homepage):
$ git request-pull origin/master myfork
The following changes since commit 1edee6b1d61823a2de3b09c160d7080b8d1b3a40:
John Smith (1):
added a new function
are available in the git repository at:
git://githost/simplegit.git featureA
Jessica Smith (2):
add limit to log function
change log output to 30 from 25
lib/simplegit.rb | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
答案 2 :(得分:0)
远程回购======>本地回购
git pull = Git获取+ Git合并
这是Github的东西。
远程Github存储库<========从您的Github存储库中拉取请求
远程github存储库的维护者是否在接受她的拉取请求。