项目导入/导出 (免费)
- 引入 在 GitLab 8.9 中 。
- 从 GitLab 10.0 开始,管理员可以禁用 GitLab 实例上的项目导出选项。
在任何 GitLab 实例或 GitLab.com 上运行的现有项目都可以与其所有相关的项目一起导出 数据并移动到新的 GitLab 实例中。
该 GitLab导入/导出 ,如果该项目导入选项启用显示按钮。
也可以看看:
- 项目导入/导出 API
- 项目导入/导出管理 Rake 任务 (FREE SELF)
- 组导入/导出
- 组导入/导出 API
要设置项目导入/导出:
- 在顶部栏上,转到“ 菜单”>“管理”>“设置”>“常规”>“可见性和访问控制” 。
- 滚动到 导入源 。
- 启用所需的 导入源 。
重要笔记
请注意以下事项:
- 在导入项目之前,您需要先导出数据。 请参见 导出项目及其数据 了解如何通过 UI 导出项目。
- 不支持从较新版本的 GitLab 导入。 导入 GitLab 版本必须大于或等于导出 GitLab 版本。
- 导入失败,除非导入和导出 GitLab 实例 如 中所述兼容 版本历史记录 。
- 导出是在您配置的
shared_path
,一个临时共享目录, 并移动到您配置的uploads_directory
. 每 24 小时,特定工作人员会删除这些导出文件。 - 组成员导出为项目成员,只要用户有 维护者或管理员访问导出项目所在的组。
- 具有 项目成员 所有者角色的 被导入为维护者。
- 如果管理用户(不是所有者)执行导入,导入的用户可以通过他们的主要电子邮件映射到自我管理的实例上。 否则,留下补充评论以提及原作者和 MR、票据或问题归进口商所有。
- 对于通过 GitLab.com Groups 执行的项目迁移导入,保留作者信息是 可以通过 专业服务参与 。
- 如果导入的项目包含源自 fork 的合并请求, 然后创建与此类合并请求关联的新分支 在导入/导出期间的项目中。 因此,分支数 在导出的项目中可能比在原始项目中更大。
- 不会导出允许推送到受保护分支的部署密钥。 所以, 您需要通过首先在您的 导入项目,然后相应地更新受保护的分支。
版本历史
14.0+
在 GitLab 14.0 中,项目和组导出不再支持 JSON 格式。 为了允许一个 过渡期间,您仍然可以导入任何 JSON 导出。 导入和导出的新格式 是 NDJSON。
13.0+
从 GitLab 13.0 开始,GitLab 可以导入从不同 GitLab 部署导出的包。 此能力仅限于两个以前的 GitLab 未成年人 发布,这类似于我们的 流程 安全发布 。
例如:
当前版本 | 可以导入导出的包 |
---|---|
13.0 | 13.0、12.10、12.9 |
13.1 | 13.1、13.0、12.10 |
12.x
在 13.0 之前,这是一个定义的兼容性表:
导出 GitLab 版本 | 导入 GitLab 版本 |
---|---|
11.7 至 12.10 | 11.7 至 12.10 |
11.1 至 11.6 | 11.1 至 11.6 |
10.8 到 11.0 | 10.8 到 11.0 |
10.4 到 10.7 | 10.4 到 10.7 |
10.3 | 10.3 |
10.0 到 10.2 | 10.0 到 10.2 |
9.4 至 9.6 | 9.4 至 9.6 |
9.2 至 9.3 | 9.2 至 9.3 |
8.17 至 9.1 | 8.17 至 9.1 |
8.13 至 8.16 | 8.13 至 8.16 |
8.12 | 8.12 |
8.10.3 至 8.11 | 8.10.3 至 8.11 |
8.10.0 至 8.10.2 | 8.10.0 至 8.10.2 |
8.9.5 至 8.9.11 | 8.9.5 至 8.9.11 |
8.9.0 到 8.9.4 | 8.9.0 到 8.9.4 |
项目只能在具有匹配导入/导出版本的 GitLab 版本之间导出和导入。
例如,8.10.3 和 8.11 具有相同的导入/导出版本 (0.1.3) 并且它们之间的导出是兼容的。
CE和EE之间
您可以将项目从 导出 社区版 到企业版 ,反之亦然。 这假设 版本历史 满足 要求。
如果您将项目从企业版导出到社区版,您可能会丢失仅保留在企业版中的数据。 有关更多信息,请参阅 从 EE 降级到 CE 。
导出的内容
导出以下项目:
- 项目和维基存储库
- 项目上传
- 项目配置,不包括集成
- 评论问题、合并请求与差异和评论、标签、里程碑、片段、时间跟踪、 和其他项目实体
- 设计管理文件和数据
- LFS 对象
- 发行版
- 管道历史
- 推送规则
- 奖项
以下项目 不 导出 :
- 构建痕迹和工件
- 容器注册表镜像
- 变量 CI/CD
- 网络钩子
- 任何加密令牌
- 合并请求批准人
笔记: 有关保存在项目导出中的特定数据的更多详细信息,请参阅 import_export.yml
文件。
导出项目及其数据
完整的项目导出功能仅限于项目维护者和所有者。 您可以通过 配置此类功能 项目设置 :
要导出项目及其数据,请执行以下步骤:
-
转到您的项目主页。
-
单击 设置 边栏中的 。
-
向下滚动以找到“ 导出项目” 按钮:
-
生成导出后,您应该会收到一封电子邮件,其中包含指向 下载文件:
-
或者,您可以返回项目设置并下载 文件,或生成新的导出。 一旦文件可用,页面 应该显示 下载导出 按钮:http://192.168.2.105:54100/help/user/project/settings/img/import_export_download_export.png
导入项目
-
GitLab 项目导入功能是创建项目时的第一个导入选项 新项目。 点击 GitLab 导出 :
-
输入您的项目名称和 URL。 然后选择您之前导出的文件:
-
单击 导入项目 开始导入。 您新导入的项目 页面很快出现。
笔记: 如果使用 Internal
可见度 受到限制 , 所有导入的项目都被赋予了可见性 Private
.
笔记: 管理员可以设置最大导入文件大小,默认为 0
(无限)。 作为管理员,您可以修改最大导入文件大小。 为此,请使用 max_import_size
选项,在 应用程序设置API 或 管理区UI 。 默认值 修改 GitLab 13.8 中的 从 50MB 为 0。
项目导入状态
您可以通过 查询导入 项目导入/导出 API 。 如 API 文档中所述,查询可能会返回导入错误或异常。
导入大型项目 (免费)
如果您有一个更大的项目,请考虑使用 Rake 任务,如我们的 开发人员文档 中所述 。
速率限制
为了帮助避免滥用,默认情况下,用户被限制为:
请求类型 | 限制 |
---|---|
出口 | 每分钟 6 个项目 |
下载导出 | 每组每分钟 1 次下载 |
进口 | 每分钟 6 个项目 |
请注意 GitLab.com 的 可能 设置 设置不同 与默认 。