背景:
将 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>
中缓存的字段来