【发布时间】:2020-12-20 19:29:48
【问题描述】:
我目前正在尝试使用 GitLab。目前,我正在使用 GitLab 的免费在线版本,我非常喜欢它。但目前,我正在尝试理解“合并请求”策略。鉴于我有两个分支:
- 主人
- 我的开发者
现在,假设我在主分支上有一个名为“README1.md”的文件,在“mydev”分支上有一个名为“README2.md”的文件。接下来,我创建一个从“mydev”-branch 到 master-branch 的合并请求,并且我有以下 gitlab-ci.yml 文件:
image: node:current-alpine
test:
only:
- merge_requests
stage: test
script:
- ls -al
因此,在创建合并请求时,管道会运行并标记为“分离”。但是“ls -al”只显示“mydev”分支中的 README2.md,而不是主分支中的 README1.md。 GitLab 文档统计“使用用于合并结果的管道,管道运行就像源分支中的更改已合并到目标分支中一样。”。所以我希望同时看到 README1.md (master-branch) 和 README2.md (mydev-branch),因为我假设 GitLab 在运行“merge_requests”管道时正在执行以下操作:
- 克隆存储库
- 结帐“mydev”-branch
- 在 master 分支上重新设置“mydev”-branch
- 运行脚本(“ls -al”命令)
但似乎我的假设是错误的,GitLab 只是检查源分支并运行脚本(GitLab 跳过第 3 步)。那么,谁能解释我的假设有什么问题?
我想做的是,所有开发人员都在自己的分支上工作。当他们完成工作时,他们会创建一个“合并请求”,并且测试管道会自动运行,就像“源分支已经合并到目标分支中”一样。
【问题讨论】:
标签: git gitlab gitlab-ci pipeline branching-strategy