' git request-pull'之间的区别并且'拉取请求'

时间:2018-03-22 08:17:13

标签: git github version-control pull-request

什么是git request-pull以及如何与pull request进行比较,例如on github

1。它应该如何使用?

2. 它可以用作拉取请求的替代品(例如在github上)吗?

3. 使用它有什么好处?

2 个答案:

答案 0 :(得分:4)

git request-pull命令早于托管服务。正如评论中所述,它意味着工作流程往往包括运行git format-patchgit send-email以通过电子邮件传递补丁。一旦补丁经过测试和批准,补丁生成器可以在他们或他们公司提供的公共服务器上访问提交,并向项目维护者发送最终的电子邮件消息,宣布他们已经清理,重新安装,等,项目主题准备好合并。

例如,假设名为Phil Systeme的人有一个用于文件系统的Linux内核补丁。他有一个Linux内核树的克隆,就像某个Linux版本一样。他的补丁包括一个巨大的提交到十几个文件,他发送到文件系统维护列表,主题为:

PATCH: make the foo file system better

文件系统维护邮件列表上的反馈首先说明:将其分解为至少六个较小的部分。 Phil Systeme将他的Phile System补丁分解为八个逻辑上较小的补丁,每个补丁都有用,并且仍在构建。他这次发出了9条消息:

[PATCH v2 0/8]: make the foo file system better

(description of what the patch series is about)

[PATCH v2 1/8]: split up the xyzzy function

As a prerequisite for improving the foo file system, break
a large function into several smaller ones that each do one
thing.  We'll use this later to work better and add new features.

[PATCH v2 2/8]: ...

这一次,他得到了反馈,说它看起来更好但是他忘了解释ARM cpus需要一个特殊的东西而MIPS CPU需要一个不同的特殊事物。所以他发出了第三轮[PATCH v3 m/n]条消息,等等。

最终,文件系统维护中尉同意这个补丁应该进入。现在,Phil或者中尉将电子邮件补丁转换为实际的Git提交,应用于当前的开发内核或维护内核,管他呢。 Linus Torvalds在这一点上足够信任这个人,这个人可以说:“这里有一个Git存储库,你需要添加到内核中的新提交。”然后,Linus可以git pull直接来自这个其他存储库,或者更可能是git fetch,然后决定是否以及如何合并它们,或者是否侮辱这个人。 : - )

像GitHub和Bitbucket这样的托管服务声称或感觉,或者你喜欢的任何动词,他们的“拉动请求”机制优于所有这些电子邮件。在某些方面,它显然是;但是他们对隐藏实际提交图的热情,如果你要使用真正的合并真的很重要,对我来说是个谜。

答案 1 :(得分:1)

1。 Pull Request支持将代码修改控制采用到由托管商提供的给定代码库通过Web-UI (例如github) ,bitbucket)。 Example.

2。 git request-pull是一个git命令,可以简化通过电子邮件提供补丁的过程,而不依赖于单个主机的服务。 Example.

+-----------------+--------------------------------+--------------------------+
|     Action      |           Pull Request         |       git request-pull   |
+-----------------+--------------------------------+--------------------------+
| authentication  |  Register and login at hoster  |  Full Name, Signed Email |
| description     |  Web-Ui                        |  Patch, Email            |
| discussion      |  Web-Ui                        |  Email, Mailinglist      |
| review          |  Web-Ui                        |  Email, Mailinglist      |
| adoption        |  One button `merge` action     |  git pull/push           |
+-----------------+--------------------------------+--------------------------+