Gitlab merge 时提示”Source branch does not exist”问题的一个解决方案

在将 Gitlab 从服务器迁移到阿里云并升级后,遇到推送新分支并合并时出现错误提示。通过查看 Gitlab issue 发现问题可能与缓存有关。解决方法是删除 Redis 缓存中与分支列表相关的 key,以确保在 merge 时获取最新数据。可以使用脚本定期清理这些缓存,并注意在 Docker 容器中连接 Redis 需要指定 socket。
摘要由CSDN通过智能技术生成

背景:

将 gitlab 从服务器上迁到阿里云主机,版本从 9.4.1-ce.0 升级到 11.4.3-ce.0,迁移前后均使用 docker 部署,在云主机上运行后,发现在本地推送新分支到 gitlab 并进行 merge 操作时,merge 按钮不可用且提示 Source branch does not exist. Please restore it or use a different source branch,如下图:
在这里插入图片描述

解决方案:

该问题在 gitlab issue 上的讨论:
“Source branch does not exist"/“Target branch does not exist” (#15392) · Issues · GitLab.org / GitLab Community Edition · GitLab

大致理解了问题产生的原因,但仍旧无法解决,通过尝试,使用一种不太优雅的方式暂时处理了这个问题,逻辑如下:

  • gitlab docker 镜像版本使用 redis 作为缓存服务器,其中 merge 时会用到其中 key 格式为 cache:gitlab:branch_names:<project_name>:<project_id> 中缓存的字段来
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值