GitLab CE 9中如何将群组项目转移至个人用户?
GitLab CE 9 项目从群组迁移到个人用户的操作方法
既然你拥有gitadmin权限,迁移GitLab CE 9里的项目从群组到个人用户其实挺简单的,我给你分两种常用方法说明,优先推荐网页UI操作,直观易上手:
方法一:通过GitLab网页UI操作(推荐)
这是最常规的操作方式,适合大多数场景:
- 登录GitLab后,打开要迁移的项目主页:
https://gitlab.local/groupname/projectname - 进入项目设置页:点击页面顶部导航栏最右侧的Settings(设置)选项
- 进入高级设置:在左侧菜单栏中找到Advanced Settings(高级设置),GitLab 9里这个选项在设置菜单的下方区域
- 执行转移操作:往下滚动页面,找到Transfer project(转移项目)模块。在New namespace(新命名空间)输入框中,直接填入目标个人用户的用户名
userA,然后点击Transfer project按钮 - 确认迁移:系统会弹出确认提示框,提醒你项目URL将变更,确认无误后点击Yes, transfer project,等待几秒就完成迁移了
方法二:使用GitLab Rails控制台(UI操作异常时备用)
如果遇到UI卡顿、权限提示异常等情况,可以用控制台直接操作,更高效:
- 登录GitLab服务器的终端,切换到GitLab系统用户:
sudo su - git - 启动GitLab Rails控制台:
gitlab-rails console - 定位目标项目和用户:在控制台中执行以下Ruby代码(替换对应的群组、项目和用户名):
# 获取要迁移的项目 project = Project.find_by_full_path('groupname/projectname') # 获取目标个人用户 user = User.find_by_username('userA') - 执行迁移并保存:
# 将项目归属切换到目标用户的命名空间 project.namespace = user.namespace # 保存更改 project.save! - 完成后输入
exit退出控制台即可
注意事项
- 迁移前建议先备份项目:可以在项目设置的Repository(仓库)模块中找到Backup repository选项,或者使用GitLab全局备份命令,避免意外情况
- 迁移后项目的所有数据(分支、标签、Issue、CI/CD配置等)都会完整保留,仅URL变更为
https://gitlab.local/userA/projectname - 若迁移后出现权限问题,你作为gitadmin可以进入项目设置的Members模块,调整目标用户
userA的权限为Owner即可
内容的提问来源于stack exchange,提问作者user1164061




