1

例如,如果两个分支合并时dev分支在build分支之后,则可以创建合并请求。但是很明显它不能合并,因为不可能将一个向后分支合并到当前分支。在这种情况下,我想使用.gitlab-ci.yml的配置,来判断dev分支是否在build分支的后面,我想知道,这样可以吗?如果可能,如何配置 .gitlab-ci.yml 文件?

4

1 回答 1

0

基本上,gitlab 尝试使用合并git来确定是否存在冲突。它实际上要求 gitaly 这样做。

基本上这个过程是这样的:

  1. repository.rb中的 rails 应用程序将调用 gitaly 冲突服务以检查冲突
  2. gitaly 中的冲突服务 list_conflict_file会调用 git2go
  3. git2go冲突子命令基本上会执行 git 合并操作并返回遇到的任何冲突。这最终会作为对步骤 (1) 中来自 rails 的调用的响应而返回

因此,如果您想在 CI/CD 管道中做类似的事情,您可以使用git(或您喜欢的语言的 git 编程 API)尝试本地合并两个分支以检测冲突。

于 2021-11-18T18:14:05.183 回答