拉请求似乎是使用Git进行代码审查的常用方法.但是,当使用内置git request-pull
或不同的工具时,这个术语是否意味着相同还不清楚.
pull请求是Git的内在功能,还是像GitHub,Gerrit或Atlassian Stash这样的工具的常用术语?
代码审查的讨论和"结果"是存储在Git提交历史记录中还是存储在单独的数据库中?
该git request-pull
命令可用于在本地git中创建“拉取请求”。运行时,Git会生成对项目所做更改的摘要以及可从中提取代码的Git存储库URL。这可以被邮寄到邮件列表或项目的维护者,那么谁可以拉在改变自己的资料库。
本节的的临Git的书中包含了更具体的信息git request-pull
的命令。
拉取请求是一个简单的概念,它源于Git创建时,但从那时起被带到了不同的层次.
本质上是你没有对你想要贡献的存储库的推送权限,所以相反,你分叉存储库,制作你的私人副本(一个克隆已经完成了这个.)而你贡献给那个.然后,您要求原始存储库的维护者提取您的更改.所以你实际上是在提交一个补丁.
正如我所说,有不同的方法可以做到这一点,但这一切都归结为要求维护者提取你的更改,因此得名.最初为Git创建的目的是Linux内核,他们一直在使用邮件列表进行开发.所以对于他们来说,拉取请求实际上是每封电子邮件发送一个补丁; 这些补丁实际上是一些正常的电子邮件通信前缀的提交对象--Git有生成这个的工具.
git request-pull
是一个类似的工具,用于生成请求拉取请求的消息.但在这种情况下,它更接近拉动的想法.虽然可以应用补丁,但request-pull
实际上创建的请求会告诉维护者从不同的远程存储库中提取更改.
该Git的书有这个例子:
$ 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(-)
所以它实际上只是一个生成消息来执行底层概念的实用程序.
像GitHub这样的其他源代码托管商也这样做.当您在GitHub上创建拉取请求时,您只需创建一个问题,其中包含维护者可以提取的提交的更多信息.当然,它们都在一个网站上,它们可以将所有内容链接起来,并提供一些单击合并按钮.
但基本概念仍然是相同的:要求维护者引入您所做的一些更改.唯一的区别是这个请求的沟通方式.