【问题标题】:How do I merge branches using GitLab CI/CD?如何使用 GitLab CI/CD 合并分支?
【发布时间】:2021-12-24 11:02:20
【问题描述】:
job1:
    stage: build
    script:
        - echo 'Hello'
        - git branch
        - git merge cicd
    tags:
        - cicd

我想在运行job的时候合并一个分支,但是执行job命令后出现如下错误:

merge: cicd - not something we can merge
Did you mean this?
    origin/cicd

我也尝试使用git checkout master 并得到以下错误:

error: pathspec 'master' did not match any file(s) known to git

【问题讨论】:

  • CI/CD 通常不会进行完全克隆——它们的克隆足以测试一次提交。如果您需要更多提交和分支,您必须自己获取它们。合并后不要忘记推送。

标签: git gitlab git-merge cicd


【解决方案1】:
job1:
    stage: build
    script:
        - echo 'Hello'
        - git branch
        - git merge cicd
    tags:
        - cicd

我想在运行job的时候合并一个分支,但是执行job命令后出现如下错误:

merge: cicd - not something we can merge
Did you mean this?
  origin/cicd

首先,请注意默认情况下,GitLab CI uses shallow clones 以便 更快并使用更少的资源,这意味着它不会获取所有 远程参考。在这种情况下,它可能不会获取所有提交 有必要进行适当的合并,因此您必须disable shallow cloning

其次,默认情况下 git 不会创建任何分支(除了 ma​​ster/the 正常克隆的默认分支)克隆存储库时。同样的错误 如果您从头开始将存储库克隆到您的机器上,可能会发生 例如git clone URL。只有对远程分支的引用才会 默认获取(如origin/cicd)。

所以你可以直接合并远程分支:

git merge origin/cicd

或者从远程分支创建一个普通分支然后合并:

git branch cicd origin/cicd
git merge cicd

唯一的区别应该是自动生成的合并上会写什么 提交信息:


直接合并远程分支:

合并远程跟踪分支'origin/cicd'

合并本地分支:

合并分支'cicd'


我也尝试使用git checkout master 并得到以下错误:

error: pathspec 'master' did not match any file(s) known to git

上述相同的命令应该适用于 ma​​ster

【讨论】:

猜你喜欢
  • 2023-01-13
  • 2020-12-17
  • 2022-06-23
  • 1970-01-01
  • 2022-01-18
  • 2021-12-22
  • 2020-02-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多