拉取请求与合并请求


465

合并请求和合并请求之间有什么区别。

在Github中,这是一个请求请求,在GitLab中,这是一个合并请求...两者之间是否有区别?

Answers:


763

GitLab的“合并请求”功能等同于GitHub的“拉请求”功能。两者都是将更改从另一个分支或分支拉入您的分支并将更改与现有代码合并的方法。它们是用于代码审查和变更管理的有用工具。

GitLab上一篇文章讨论了命名功能的区别:

合并或拉取请求是在git管理应用程序中创建的,并要求指定的人合并两个分支。诸如GitHub和Bitbucket之类的工具会选择名称拉取请求,因为第一个手动操作是拉取功能分支。GitLab和Gitorious之类的工具会选择名称合并请求,因为这是受让人请求的最终操作。在本文中,我们将它们称为合并请求。

“合并请求”不应与git merge命令混淆。“拉取请求”也不应与git pull命令混淆。这两个git命令在拉取请求和合并请求中都在后台使用,但是合并/拉取请求所涉及的主题比这两个命令要广泛得多。


1
发出拉取请求时,GitHub是否会创建一个中间/临时分支(不可见)?
罗伯特·科里特尼克

1
@stevemao我们可以访问它们吗?他们真的是只读的,因为我们可以解决他们之间的冲突吗?
罗伯特·科里特尼克

11
我想念什么?拉=提取+合并。如果最后一个动作是merge,则必须提取第一个动作。
Vytenis Bivainis

59
MR到处都是更好的名字。直到我阅读了您对它的第一个动作的解释,而我理解了“合并请求”的含义才是对我的第一次理解,“拉取请求”对我而言就再没有意义了。“您好,能否请您将此代码合并到master分支中?” 与“您好,您能否将这段代码拉到<implied merging>的无形分支”-这里有一个明显的赢家。
Granitosaurus

7
@Granitosaurus同意。作为git的初学者,pull请求绝对不是我期望的。当我开始使用Gitlab时,合并请求立即就有意义了。
Mark Lyons

54

它们是相同的功能

合并或拉取请求在git管理应用程序中创建,并要求指定的人合并两个分支。诸如GitHub和Bitbucket之类的工具会选择名称请求,因为第一个手动操作是提取功能分支。GitLab和Gitorious之类的工具会选择名称合并请求,因为这是受让人请求的最终操作。在本文中,我们将它们称为合并请求。

- https://about.gitlab.com/2014/09/29/gitlab-flow/


添加新功能的开发人员不应该合并吗?如果开发人员A在feature_branch中添加了功能,那么他应该采用master分支并将其合并到他的分支之上,以解决所有冲突并在创建合并请求之前对其进行测试?
Ciasto piekarz

2
是的,但是仍然需要进行快速合并,之后必须进行某些操作才能使代码掌握。实际上,我认为对于全职开发人员团队来说,最好是该功能的开发人员也将其合并,但这对于他们等待某人首先审查其PR可能很有用。
bdsl

20

在我看来,它们意味着相同的活动,但是从不同的角度来看:

考虑一下,爱丽丝对存储库A进行了一些提交,这是从鲍勃的存储库B派生的。

当爱丽丝想将她的更改“合并”到B时,她实际上希望鲍勃从“拉”这些更改。

因此,从爱丽丝的角度来看,这是一个“合并请求”,而鲍勃则将其视为“拉动请求”。


当我制作小型报告让其他同事知道git的工作原理时,这使我想起了这个例子。
拉维·亚达夫

4

在冲突管理方面存在细微的差异。如果发生冲突,Github中的拉取请求将导致目标分支上的合并提交。在Gitlab中,当发现冲突时,所做的修改将在上的合并提交中进行分支。

参见https://docs.gitlab.com/ee/user/project/merge_requests/resolve_conflicts.html

“ GitLab通过在不会自动合并到目标分支中的源分支中创建合并提交来解决冲突。这允许在合并更改之前对合并提交进行检查和测试,从而防止意外更改进入目标分支而不会进行检查或破坏构建。”


3

GitLab 12.1(2019年7月)引入了一个区别:

合并机密问题的请求

在讨论,计划和解决诸如安全漏洞之类的机密问题时,由于Git存储库是公共的,因此开源项目要保持效率尤其具有挑战性。

https://about.gitlab.com/images/12_1/mr-confidential.png

从12.1开始,现在可以使用“创建机密合并请求”按钮在简化的工作流程中解决公共项目中的机密问题,这有助于您在项目的私有分支中创建合并请求。

请参阅问题58583中的机密问题 ” 。

GitHub中存在类似的功能,但涉及创建一个特殊的私有fork,称为“ 维护者安全公告 ”。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.