0
0
0
GitLab 项目迁移到GitLab Group
文章摘要
|
为了让多个项目共用 CI/CD 变量,我把 GitLab 项目从个人命名空间迁移到了 Group。迁移后 git push 成功,但出现提示:
remote: Project 'developer/demo-project' was moved to 'dev-team/demo-project'.
remote: Please update your Git remote:
remote: git remote set-url origin https://gitlab.example.com/dev-team/demo-project.git一、为什么会提示更新 Remote?
GitLab 仓库地址包含命名空间,迁移到 Group 后路径会变化:
旧地址:https://gitlab.example.com/developer/demo-project.git
新地址:https://gitlab.example.com/dev-team/demo-project.git旧地址仍能 Push,是因为 GitLab 通常会为迁移后的项目保留旧路径重定向;但本地 Remote 不会自动修改,因此仍会收到提示。
二、如何处理?
在现有项目目录执行:
git remote set-url origin https://gitlab.example.com/dev-team/demo-project.git检查结果:
git remote -v预期输出:
origin https://gitlab.example.com/dev-team/demo-project.git (fetch)
origin https://gitlab.example.com/dev-team/demo-project.git (push)无需重新 Clone、Commit 或 Push。修改的是本地 .git/config 中的远程地址,不影响原有代码、提交历史、分支和 Tag。
三、原来的 CI/CD 配置还在吗?
使用同一 GitLab 实例内的 Transfer project 迁移时,原有项目级 CI/CD 变量通常会保留;迁移后项目还可以继承目标 Group 的共享变量。
变量同名:当两者都对当前任务生效时,项目级变量优先于 Group 变量。
变量不同名:项目可以使用符合条件的 Group 共享变量。
特别注意:
Protected、Environment scope等会影响变量是否生效;Runner、部署脚本和镜像仓库路径也建议在迁移后验证。
例如将公共镜像仓库地址放到 Group,而不同项目的 DEPLOY_HOST、DEPLOY_SSH_KEY 保留在项目级,避免误部署或扩大密钥访问范围。
