转移项目
- Tier: 基础版, 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
将项目转移到另一个命名空间
History
- 支持在同一顶级命名空间内转移带有容器镜像的项目引入于极狐GitLab 17.7(仅限 SaaS),使用名为 transfer_project_with_tags 的功能标志。默认禁用。
- 支持在同一顶级命名空间内转移带有容器镜像的项目功能,在极狐GitLab 17.7 中在 SaaS 上启用。功能标志被删除。
转移项目以将其移动到不同的群组。项目转移包括:
-
项目组件:
- 议题
- 合并请求
- 流水线
- 仪表板
-
项目成员:
- 直接成员
- 成员邀请
在项目中具有继承成员资格的成员将失去访问权限,除非他们也是目标群组的成员。项目继承您转移到的群组的新成员权限。
项目的路径也会更改,因此请确保在必要时更新项目组件的 URL。
如果目标命名空间中尚不存在匹配的群组标签,则会为议题和合并请求创建新的项目级标签。
转移过程中的错误可能导致项目组件或终端用户依赖项的数据丢失。
先决条件:
-
您必须至少拥有您要转移到的群组的维护者角色。
-
您必须是您要转移的项目的所有者。
-
群组必须允许创建新项目。
-
对于启用了容器注册表的项目:
- 在 JihuLab.com 上:您只能在同一顶级命名空间内转移项目。
- 在极狐GitLab 私有化部署上:项目不得包含容器镜像。
-
项目不得有安全策略。如果项目分配了安全策略,则在转移过程中会自动取消分配。
-
如果根命名空间更改,您必须从项目中删除遵循命名约定的 npm 软件包。转移项目后,您可以:
- 使用新的根命名空间路径更新软件包范围,然后再次将其发布到项目。
- 将软件包重新发布到项目而不更新根命名空间路径,这将导致软件包不再遵循命名约定。如果您在不更新根命名空间路径的情况下重新发布软件包,它将无法用于实例端点。
要转移项目:
- 在左侧边栏中,选择 搜索或前往 并找到您的项目。
- 选择 设置 > 常规。
- 展开 高级。
- 在 转移项目 下,选择要转移项目到的命名空间。
- 选择 转移项目。
- 输入项目的名称并选择 确认。
您将被重定向到项目的新页面,极狐GitLab 应用重定向。有关存储库重定向的更多信息,请参阅当存储库路径更改时会发生什么。
如果您是管理员,您也可以使用管理界面将任何项目移动到任何命名空间。
将 JihuLab.com 项目转移到不同的订阅层级
当您将项目从极狐GitLab.com 专业版或旗舰版授权的命名空间转移到极狐GitLab 基础版时:
故障排除
在处理项目设置时,您可能会遇到以下问题,或需要使用其他方法完成特定任务。
通过控制台转移项目
如果通过 UI 或 API 无法转移项目,您可以尝试在Rails 控制台会话中进行转移。
ruby1p = Project.find_by_full_path('<project_path>') 2 3# To set the owner of the project 4current_user = p.creator 5 6# Namespace where you want this to be moved 7namespace = Namespace.find_by_full_path("<new_namespace>") 8 9Projects::TransferService.new(p, current_user).execute(namespace)