git - 如何使用 GitLab CI/CD 合并分支?
问题描述
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
解决方案
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 使用浅克隆以便更快并使用更少的资源,这意味着它不会获取所有远程引用。在这种情况下,它可能不会获取进行正确合并所需的所有提交,因此您将不得不禁用浅克隆。
其次,默认情况下 git 在克隆存储库时不会创建任何分支(除了master /正常克隆的默认分支)。例如,如果您将存储库从头开始克隆到您的机器上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
上面相同的命令应该适用于master。
推荐阅读
- javascript - 将显示设置为无后,Div innerText 丢失新行
- java - 安装 JVM 的自动无缝方式
- javascript - 我无法理解一件事
- python - 如何使用驱动程序对象将python selenium中的所有页面
- tensorflow - 如何使用嵌入式 tensorflow 方法来组合多个特征列操作和窗口化,以用于 RNN?
- gitlab - GitLab 是否显示以 base64 给出的图像?
- android - Android 自动备份 - 如何知道上次备份的时间?
- c++ - 指针数组,在 C++ 中删除并分配给它的指针
- apache-spark - Databricks REST API 节流和容量限制/限制
- javascript - 在一个组件中反应清除 LocalStorage 和 Asyncstorage