在 Gitlab CI/CD 中如何在管道期间签出另一个分支

iRe*_*nor 3 git continuous-integration gitlab

我想签出dev合并请求管道中的分支,该管道是为了dev与其他分支合并而打开的。我将检查这项工作中的某些内容,然后根据这项工作的成功继续进行其他一些工作。是否可以做这样的事情,或者我总是必须使用管道触发的分支?

我添加了gitlab配置的相关部分


variables:
  GIT_STRATEGY: clone

checksomething:
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "dev"
    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
      when: never
    - if: $CI_COMMIT_BRANCH
  environment:
    name: development
  before_script:
    - git checkout dev
  script:
    - !reference [.check-something-on-dev]
Run Code Online (Sandbox Code Playgroud)

但我有这个错误:

$ git checkout dev
error: pathspec 'dev' did not match any file(s) known to git```
Run Code Online (Sandbox Code Playgroud)

iRe*_*nor 9

其实就是这么简单:

    before_script:
    - git fetch origin dev
    - git checkout dev
Run Code Online (Sandbox Code Playgroud)

  • 接得好。已投赞成票。我想 refspec 没有获取所有分支,迫使您获取所需的分支。 (3认同)