Answers:
GitLab的“合并请求”功能等同于GitHub的“拉请求”功能。两者都是将更改从另一个分支或分支拉入您的分支并将更改与现有代码合并的方法。它们是用于代码审查和变更管理的有用工具。
合并或拉取请求是在git管理应用程序中创建的,并要求指定的人合并两个分支。诸如GitHub和Bitbucket之类的工具会选择名称拉取请求,因为第一个手动操作是拉取功能分支。GitLab和Gitorious之类的工具会选择名称合并请求,因为这是受让人请求的最终操作。在本文中,我们将它们称为合并请求。
“合并请求”不应与git merge
命令混淆。“拉取请求”也不应与git pull
命令混淆。这两个git
命令在拉取请求和合并请求中都在后台使用,但是合并/拉取请求所涉及的主题比这两个命令要广泛得多。
它们是相同的功能
合并或拉取请求在git管理应用程序中创建,并要求指定的人合并两个分支。诸如GitHub和Bitbucket之类的工具会选择名称请求,因为第一个手动操作是提取功能分支。GitLab和Gitorious之类的工具会选择名称合并请求,因为这是受让人请求的最终操作。在本文中,我们将它们称为合并请求。
在冲突管理方面存在细微的差异。如果发生冲突,Github中的拉取请求将导致目标分支上的合并提交。在Gitlab中,当发现冲突时,所做的修改将在源上的合并提交中进行分支。
参见https://docs.gitlab.com/ee/user/project/merge_requests/resolve_conflicts.html
“ GitLab通过在不会自动合并到目标分支中的源分支中创建合并提交来解决冲突。这允许在合并更改之前对合并提交进行检查和测试,从而防止意外更改进入目标分支而不会进行检查或破坏构建。”
如先前的答案所述,两者的作用几乎相同。我个人喜欢git rebase和合并请求(如gitlab中)。它减轻了审阅者/维护者的负担,确保在添加合并请求时,功能分支包含创建功能分支后在主分支上完成的所有最新提交。这是一篇非常有用的文章,详细介绍了重新定基:https : //git-scm.com/book/en/v2/Git-Branching-Rebasing