VSB*_*VSB 4 git gitlab git-fork
我想将gitlab项目复制到完全独立于原始项目的其他存储库。
因此,我尝试将原始项目分叉到另一个项目中。但是在原始项目中,维护人员仍然可以看到派生列表,并且知道其他派生在哪里维护。
我想要一个没有主项目任何链接的完整副本,所以它不能由原始项目维护者管理。
我怎样才能做到这一点?
Gin*_*pin 12
另一种选择是使用 Gitlab 的导出/导入功能。
在任何 GitLab 实例或 GitLab.com 上运行的现有项目可以与其所有相关数据一起导出,并移动到新的 GitLab 实例中。
与其他答案的不同之处在于,它还复制了以下内容:
导出的内容
将导出以下项目:
- 项目和维基存储库
- 项目上传
- 项目配置,不包括集成
- 评论问题、合并请求与差异和评论、标签、里程碑、片段和其他项目实体
- 设计管理文件和数据
- LFS 对象
- 发行版
- 管道历史
- 推送规则
因此,如果您只想复制代码,或者您还想迁移上面列出的其他非代码项目,这取决于您的用例。结果仍然是 2 个独立的项目(即它不会显示为一个分支)。
请注意:
如果启用了项目导入选项,则会显示GitLab导入/导出按钮。
要导出,请转到项目的设置>常规页面:
然后等待带有可下载tar.gz的电子邮件。文件。
(在我的 Gitlab 版本上,如果单击按钮两次,则可以直接从浏览器中下载。)
然后在 Gitlab 上导入,从顶部栏中选择“新建”按钮 >“新建项目”。
然后,选择导入项目> Gitlab 导出。
上面的 UI 屏幕截图可能会在未来的 Gitlab 版本上发生变化。同样,请确保参考您的 Gitlab 实例的文档页面,或查看 Gitlab EE 中的公共页面:项目导入/导出。
我会将原始项目克隆到本地计算机上的沙箱中,在所需的位置创建新项目,将新的gitlab位置设置为远程,然后将其推送到该位置。
假设old_url和new_url是您的新旧URL:
git clone <old_url>
cd <repo_dir_name>
git remote add new_remote <new_url>
git push --all new_remote
Run Code Online (Sandbox Code Playgroud)
假设新存储库在您执行此操作时是空的,那么它将包含原始存储库中存在的所有分支和标签,而与其没有任何连接。