gil*_*ly3 667
GitLab的"合并请求"功能相当于GitHub的"拉取请求"功能.两者都是将更改从另一个分支或分支拉入分支并将更改与现有代码合并的方法.它们是代码审查和变更管理的有用工具.
合并或拉取请求在git管理应用程序中创建,并要求指定人员合并两个分支.GitHub和Bitbucket等工具选择名称拉取请求,因为第一个手动操作是拉动功能分支.诸如GitLab和Gitorious之类的工具选择名称合并请求,因为这是受让人请求的最终操作.在本文中,我们将它们称为合并请求.
不应将"合并请求"与git merge命令混淆.也不应该将"拉取请求"与git pull命令混淆.两个git命令都在拉取请求和合并请求的幕后使用,但合并/拉取请求指的是比这两个命令更广泛的主题.
rne*_*ves 51
它们是相同的功能
合并或拉取请求在git管理应用程序中创建,并要求指定人员合并两个分支.GitHub和Bitbucket等工具选择名称拉取请求,因为第一个手动操作是拉动功能分支.诸如GitLab和Gitorious之类的工具选择名称合并请求,因为这是受让人请求的最终操作.在本文中,我们将它们称为合并请求.
icl*_*man 10
在冲突管理方面存在细微差别。如果发生冲突,Github 中的拉取请求将导致目标分支上的合并提交。在 Gitlab 中,当发现冲突时,所做的修改将在源分支上进行合并提交。
见https://docs.gitlab.com/ee/user/project/merge_requests/resolve_conflicts.html
“GitLab 通过在源分支中创建一个不会自动合并到目标分支的合并提交来解决冲突。这允许在合并更改之前审查和测试合并提交,防止意外的更改进入目标分支而无需审查或破坏建造。”
在我看来,它们意味着相同的活动,但是从不同的角度来看:
考虑一下,爱丽丝对存储库A进行了一些提交,这是从鲍勃的存储库B派生的。
当爱丽丝想将她的更改“合并”到B时,她实际上希望鲍勃从“拉”这些更改。
因此,从爱丽丝的角度来看,这是一个“合并请求”,而鲍勃则将其视为“拉动请求”。
GitLab 12.1(2019 年 7 月)引入了一个差异:
在讨论、规划和解决安全漏洞等机密问题时,由于 Git 存储库是公开的,因此开源项目保持高效尤其具有挑战性。
从 12.1 开始,现在可以使用“创建机密合并请求”按钮在简化的工作流程中解决公共项目中的机密问题,这有助于您在项目的私有分支中创建合并请求。
请参阅问题 58583中的“机密问题”。
GitHub 中也存在类似的功能,但涉及创建一个特殊的私有分支,称为“维护者安全咨询”。
GitLab 13.5(2020 年 10 月)将添加审阅者,该功能 之前已在 GitHub 上提供。