首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git拉请求和git拉和git推送之间有什么关系?

git拉请求和git拉和git推送之间有什么关系?
EN

Stack Overflow用户
提问于 2019-01-16 14:12:50
回答 1查看 338关注 0票数 0

git pull-requestgit pullgit push之间的关系是什么?

假设我和其他同行共享一个远程存储库。我们每个人都有一个单独的本地存储库。

当我完成本地存储库中的一个功能时,我想和我的同事分享我的工作。

  1. 我是否应该使用git pull-request要求我的同行从本地存储库到他们各自的存储库进行git pull
  2. 我是否应该使用共享远程存储库作为其git pull-request参数来运行?如果是,命令是否要求共享远程存储库的管理员从我的本地存储库到远程存储库的git pull?以下三个消息来源似乎表示同意。 git pull-request的管理手册说,它“生成一个请求,要求您的上游项目将更改拉到他们的树中。” https://stackoverflow.com/a/49432466/10082400说,在有人运行git request-pull之后,"...Linus可以直接从另一个存储库中提取git,或者更有可能的话,从那里提取git,并决定是否和如何合并它们。“ https://github.com/torvalds/linux/blob/master/Documentation/process/submitting-patches.rst#16-sending-git-pull-requests说:“如果您有一系列补丁,那么让维护人员使用git拉操作将它们直接拉到子系统存储库中可能是最方便的。”
  3. 在运行git push之前,我是否需要从本地存储库到共享远程存储库进行git request-pull特性方面的工作? 如果git request-pull将请求共享远程存储库的管理员将有关特性的工作从本地存储库提取到共享远程存储库,那么我为什么需要这样做呢? git pull-request的手册给出了一个例子,哪个git pushgit pull-request". Isgit之前在示例中推送necessary beforegit请求? 假设您在v1.0发行版的主分支上构建了您的工作,并希望将其集成到项目中。首先,您将更改推送到您的公共存储库,以便其他人看到: git推送https://git.ko.xz/project主机 然后,运行以下命令: git请求-拉v1.0 https://git.ko.xz/project母版 这将产生对上游的请求,总结v1.0发行版和主版之间的更改,将其从公共存储库中提取。
EN

回答 1

Stack Overflow用户

发布于 2019-01-19 04:22:26

给出适当的输入,git request-pull命令构建一个合适的电子邮件消息。从字面上讲,这就是它所做的一切。电子邮件将转到命令的标准输出;如果您希望这样做,则由您收集该邮件并发送电子邮件。

git pull命令运行git fetch,然后运行第二个Git命令,通常是git mergegit rebase。(对于拉入没有提交的空存储库的特殊情况,它将运行git checkout作为它的第二个命令。)请参阅有关它的许多其他StackOverflow问题中的任何一个。

git push命令让您的Git调用其他Git并交换信息,发送您必须发送的任何提交对象和其他内部Git对象以完成最后一步,然后作为最后一步,提供礼貌的请求(非强制推送)、比较和交换命令(强制-租约)或命令样式请求(强制推送),要求其他Git设置对某些特定散列ID的引用。

接下来的三个问题是如何使用这些不同的命令及其能力来构建有用的工作流。这样做有许多不同的方法;不可能在不对网络访问的任何限制(或缺乏)作出许多假设的情况下,规定一个适合每个人的工作流,等等。Git本身更像是一个工具系统,用户可以随意使用,而不是针对特定问题的具体解决方案。

不过,我们可以在一定程度上处理这三个问题:

  1. 我是否应该使用git pull-request要求我的同行从本地存储库到他们各自的存储库进行git pull

如果你愿意的话,可以。请注意,要想成功地这样做,他们必须至少拥有本地存储库的读取权限,也许可以通过网络访问。

  1. 我是否应该使用共享远程存储库作为URL参数来运行git拉请求?

如果你愿意的话,可以。但是,如果您使用的是共享的远程存储库,那么git request-pull几乎是完全冗余和毫无意义的。

如果是,命令是否要求共享远程存储库的管理员将git从本地存储库提取到远程存储库?

否;它将请求他们从共享的远程存储库中提取,我们可以假设,无论如何,它们已经频繁地执行了。尝试运行git request-pull查看。因为它的输出到了标准输出,所以您将准确地看到将其输出发送给其他人的邮件将发送给其他人。然而,它将特别指出:

代码语言:javascript
复制
The following changes since commit %H:

  %s (%ci)

are available in the Git repository at:

  $url $pretty_remote

for you to fetch changes up to %H:

  %s (%ci)

使用各种$%字段填充。$url部分实际上是作为URL参数传入的任何内容,而$pretty_remote是通过从refspec参数的目标部分中剥离refs/heads/refs/ (如果提供了一个参数)来组成的。请参阅git-request-pull代码(它是一个简单的shell脚本)以获得更多详细信息。

  1. 在运行git push之前,是否需要将我的工作从本地存储库转移到共享远程存储库

不是的。与问题2一样,如果您有一个共享存储库,那么git request-pull几乎肯定是没有意义的。该命令是围绕这样一个假设设计的:无论出于什么原因,您都没有一个真正的共享存储库--您和您的上游只能读取对方存储库的访问权限。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54218945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档