git request-pull
以及它与制作 pull request
有何不同,例如在 github 上?
1. 应该如何使用?
2. 它可以用作拉取请求的替代品(例如在 github 上)吗?
3.使用它有什么好处?
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 cpu 需要一种特殊的东西,而 MIPS CPU 需要一种不同的特殊东西。 所以他发出了第三轮
[PATCH v3 m/n]
消息,依此类推。
最终,文件系统维护副官同意加入这个补丁。现在 Phil,或者副官,将通过电子邮件发送的补丁转换为实际的 Git 提交,应用于当前的开发内核,或者维护内核,或者其他什么。 Linus Torvalds 此时对这个人足够信任,以至于这个人可以说:“这是一个包含新提交的 Git 存储库,您应该将其添加到内核中。” 然后,Linus 可以直接从另一个存储库
git pull
,或者更有可能,从那里 git fetch
并决定是否以及如何合并它们,或者是否侮辱该人。 :-)
像 GitHub 和 Bitbucket 这样的托管服务声称,或者感觉,或者任何你喜欢的动词,他们的“拉取请求”机制优于所有这些电子邮件。 从某些方面来说,很明显是这样的;但他们对隐藏实际的提交图的热情对我来说有点神秘,如果你要使用真正的合并,这确实很重要。
1. A
Pull Request
支持通过托管商(例如 github、bitbucket)提供的 Web-UI 将代码修改受控地采用到给定的代码库中。 示例。
2. git request-pull
是一个 git 命令,可以简化通过电子邮件贡献补丁的过程,而不依赖于单个托管服务商的服务。 示例。 +----------------+---------------------------- --+--------------------------+ | 行动| 请求请求 | git 请求拉取 | +----------------+-------------------------------------------- -+--------------------------------------+ |认证| 在主机上注册并登录 | 全名,签名电子邮件 | |描述 | 网络用户界面 | 补丁、电子邮件 | |讨论 | 网络用户界面 | 电子邮件、邮件列表 | |评论 | 网络用户界面 | 电子邮件、邮件列表 | |收养 | 一键“合并”操作 | git 拉/推 | +----------------+-------------------------------------------- -+--------------------------------------+