git流水线(Pipeline)导致分支(Branch)无法合并问题及解决
最近我的分支往main分支合并代码的时候,一直提请我流水线成功的时候自动合并,由于我对gitlab的熟悉度不是很高,第一次看到这个流水线问题,所以就对此问题,找了解决方法
一、什么是 Pipeline
Pipeline中文称为流水线,是分阶段执行的构建任务。
如:安装依赖、运行测试、打包、部署开发服务器、部署生产服务器等流程。
每一次 push 或者 Merge Request 都会触发生成一条新的 Pipeline。

二、GitLab 中有一个 CI/CD 功能
GitLab CI/CD 是 GitLab Continuous Integration (Gitlab持续集成)的简称。
GitLab 自 GitLab 8.0 开始提供了持续集成的功能,且对所有项目默认开启。
只要在项目仓库的根目录添加 .gitlab-ci.yml 文件,并且配置了Runner(运行器),那么每一次 push 或者合并请求(Merge Request)都会触发 CI Pipeline。
三、解决方法
在 Pipelines 没有运行成功之前是无法进行分支合并(Merge Request)的,我们可以对此进行解决,有以下几种解决办法。
1、跳过 Pipeline
只需要在 commit message 中带上 [ci skip] 或 [skip ci],这个 commit 就不会触发 pipeline。
推送命令:
git commit -m "xxxx[skip ci]"
或者
git commit -m "xxxx" -m "[skip ci]"
2、直接关闭流水线功能
方法一:打开项目设置——CI/CD ,链接:在项目后面加上 /settings/ci_cd
取消勾选 Auto DevOps下面的 默认为Auto DevOps流水线
方法二:删掉项目下的 .gitlab-ci.yml 文件。
我就是用的方法二实现的,简单粗暴,我到现在都不知道,项目文件里为什么多一个.gitlab-ci.yml
问题是解决了,但是还是不了解内因,下一步目标就是搞透gitlab。。。。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
git-github 子模块仓库更新(git submodule)及git中submodule子模块
这篇文章主要介绍了git-github 子模块仓库更新(git submodule)/git中submodule子模块的添加、使用和删除,使用子模块后,不必负责子模块的维护,只需要在必要的时候同步更新子模块即可,需要的朋友可以参考下2023-03-03
解决SecureCRT通过SSH连接Ubuntu时vi命令有多余的m的问题
小编遇到这样一个问题用vi命令来编辑文件的时候,在开头和结尾有多余的字母出现:在开头会有多余的“m”出现,结尾有多余的“2m”,这篇文章主要介绍了解决SecureCRT通过SSH连接Ubuntu时vi命令有多余的m的问题,需要的朋友可以参考下2022-09-09
Fiddler Everywhere 4.0.1的破解及禁止更新的方法(最新推荐)
Fiddler Everywhere是个好东西,无论抓包还是调试接口都很好用,只是现在收费了,为了白嫖就决定折腾一下,如果一开始通过设置文件夹权限禁止更新,也会导致进不了使用界面而无法使用,下面说一下具体的解决过程2023-11-11


最新评论