You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab仓库迁移后Release未同步,如何迁移Release?

GitLab Release迁移解决方案

GitLab的Release属于平台层面的元数据(包含发布说明、附件等),不属于Git仓库原生内容,因此git push --mirror这类Git命令无法同步。以下是几种可行的迁移方法:

方法一:官方项目导入导出(推荐)

这是GitLab官方提供的最便捷的迁移方式,能完整迁移Release及关联资源:

  • 旧仓库操作:进入项目「设置」→「通用」→「导出项目」,勾选「发布版本(Releases)」及其他需要迁移的内容,点击「导出」,等待生成下载包后保存。
  • 新仓库操作:进入项目「设置」→「通用」→「导入项目」,选择「GitLab导出」,上传刚才下载的导出包,按照提示完成导入。
  • 注意事项:确保新旧GitLab版本兼容(建议版本差不超过3个大版本),导出包会包含Release的所有附件、描述等信息。

方法二:GitLab API批量迁移

适合Release数量较多,且需要自动化迁移的场景:

  1. 获取旧仓库所有Release数据:
    curl --header "PRIVATE-TOKEN: <旧仓库访问令牌>" "https://旧GitLab地址/api/v4/projects/<旧项目ID>/releases"
    
    (访问令牌需要有项目的读取权限,项目ID可在旧仓库主页的「设置」→「通用」中找到)
  2. 遍历每个Release,调用新仓库API创建对应Release:
    curl --request POST \
      --header "PRIVATE-TOKEN: <新仓库访问令牌>" \
      --header "Content-Type: application/json" \
      "https://新GitLab地址/api/v4/projects/<新项目ID>/releases" \
      --data '{
        "name": "Release名称",
        "tag_name": "关联标签名",
        "description": "Release描述内容",
        "assets": {
          "links": [{"name": "附件名", "url": "附件下载地址"}]
        }
      }'
    
  3. 若Release包含二进制附件,需先通过旧仓库API下载附件,再上传至新仓库的Release资产接口。

方法三:手动迁移(适合少量Release)

如果Release数量不多,手动迁移更直接:

  • 打开旧仓库的每个Release页面,复制发布名称、描述文本,下载所有附件。
  • 在新仓库中找到对应的标签(已同步完成),点击「创建Release」,粘贴名称和描述,上传下载好的附件,完成创建。

注意事项

  • 迁移前确认新仓库的所有标签已同步完成(你当前的操作已满足此条件),因为Release必须关联已存在的标签。
  • 使用API迁移时,注意处理分页(当Release数量超过20个时,API会返回分页数据,需通过page参数遍历所有页)。

内容的提问来源于stack exchange,提问作者Gavin Siu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 11:40:05