【问题标题】:Differences github merge "pull-request" and gitlab merge "merge-request"github merge "pull-request" 和 gitlab merge "merge-request" 的区别
【发布时间】:2020-01-31 10:17:16
【问题描述】:

为了更好地理解这些操作,我想知道 github 或 gitlab 究竟是如何合并这些请求的。 压缩、变基、合并时,详细执行了哪些 git 命令?

【问题讨论】:

  • 值得注意的是,像 github 和 gitlab 这样的工具并不会真正执行一系列命令行 git 命令;您可能无法在终端输入任何内容,这与您在 Web 界面中单击按钮时发生的内容 100% 相同。
  • 正确 - 很可能 gitlab/github(两个 ruby​​ on rails 应用程序)会使用类似 ruby-git 的东西来对 git 二进制文件进行系统调用

标签: git github gitlab pull-request merge-request


【解决方案1】:

PR 和 MR 之间没有区别。术语“拉取请求”是对 git 在内核开发中的使用方式的参考。假设您是开发人员,而我是维护人员。为了让您合并更改,您将生成一个差异补丁并将其通过电子邮件发送给我,以便我可以查看它,并请求我从您的存储库中提取那些我认为合适的更改。因此“拉取请求”和 git 命令 git pull-request.

合并请求是对这个过程的重新定义。这是因为我们并不是真的要求某人从我们的存储库中提取,而是要求我们的更改合并到开发/主分支,通常来自同一个存储库的一个分支。因此,gitlab 将相同的过程称为“合并请求”而不是“拉取请求”。

在这两种情况下,实际执行的命令取决于所选的选项。 gitlab 和 github 都允许压缩、变基和合并,并且命令可能几乎如果不完全相同的话。

【讨论】:

  • 我现在从来没有使用过 github,因为我们公司正在托管一个 gitlab 实例,并且在 5 个案例中有 4 个我使用命令行来做事。也许我们会在几个月后切换到 github,所以我潜入了这个主题。据我了解,github流程的原理是fork一个项目并为社区项目提供一个pull request。我只是想知道这两个分支实际的MERGE操作有什么区别。
  • Git 是一个分布式版本控制系统,它并不关心你在进行合并时是在使用 repo、remote、clone 还是 fork(基本上只是一个 clone)。只要您有共同的历史,它的行为就会大致相同。此外,您描述的过程与“github 进程”一样是“gitlab 进程”。如果您正在处理私人回购,您可能不会分叉它们。如果公开,可能是的。
猜你喜欢
  • 1970-01-01
  • 2014-03-12
  • 2020-04-20
  • 2018-03-05
  • 2012-02-22
  • 1970-01-01
  • 2018-10-07
  • 2018-07-05
相关资源
最近更新 更多