什么是git request-pull
以及如何与pull request
进行比较,例如on github?
1。它应该如何使用?
2. 它可以用作拉取请求的替代品(例如在github上)吗?
3. 使用它有什么好处?
答案 0 :(得分:4)
git request-pull
命令早于托管服务。正如评论中所述,它意味着工作流程往往包括运行git format-patch
和git 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 | +-----------------+--------------------------------+--------------------------+