跳到主要内容

PR 和 MR 的区别

· 阅读需 3 分钟
素明诚
Full stack development

核心概念和比较

Pull Request (PR)Merge Request (MR) 是版本控制系统(主要是 Git)的功能,用于代码审查和合并代码。

比较

项目PR (Pull Request)MR (Merge Request)
定义开发者请求将其代码从一个分支合并到另一个分支的请求开发者请求将其代码从一个分支合并到另一个分支的请求
主要使用平台GitHub、BitbucketGitLab
典型工作流程Fork 仓库 -> 创建分支 -> 提交代码 -> 创建 Pull Request创建分支 -> 提交代码 -> 创建 Merge Request
审查和讨论允许在 Pull Request 上进行代码审查、评论和讨论允许在 Merge Request 上进行代码审查、评论和讨论
自动化检查通常与 CI/CD 工具集成,自动运行测试和构建通常与 CI/CD 工具集成,自动运行测试和构建
代码合并代码审查通过后,可以将代码从一个分支合并到目标分支代码审查通过后,可以将代码从一个分支合并到目标分支
命名差异“Pull Request” 反映了请求代码合并时拉取代码的动作“Merge Request” 更直接地反映了合并代码的目的

核对和补充

定义和用途

  • PR 和 MR 都是开发者请求将其代码从一个分支合并到另一个分支,通常是从一个功能分支合并到主分支或开发分支。
  • 这两个功能的核心用途是实现代码审查、讨论、自动化测试和合并。

主要使用平台

  • PR 主要在 GitHub 和 Bitbucket 上使用。
  • MR 主要在 GitLab 上使用。

典型工作流程

Pull Request

  • 在 GitHub 上,通常需要先 Fork 仓库,然后在 Fork 的仓库中创建一个新分支进行开发。
  • 完成开发后,创建 Pull Request 请求将代码合并到原始仓库的目标分支。

Merge Request

  • 在 GitLab 上,通常可以直接在原始仓库中创建新分支进行开发。
  • 完成开发后,创建 Merge Request 请求将代码合并到目标分支。

审查和讨论

  • 两者都支持代码审查和讨论,团队成员可以在 PR 或 MR 上进行评论、建议修改和讨论。

自动化检查

  • PR 和 MR 都通常与 CI/CD 工具集成,自动运行测试和构建以确保代码质量。

代码合并

  • 在代码审查通过后,维护者可以将代码合并到目标分支。