如何在不分叉的情况下在 gitlab/github 上复制 git 存储库?
Posted
技术标签:
【中文标题】如何在不分叉的情况下在 gitlab/github 上复制 git 存储库?【英文标题】:How to duplicate a git repository on gitlab/github without forking? 【发布时间】:2018-01-31 04:00:30 【问题描述】:我在 Gitlab / Github 上有一个现有的存储库。我想要在同一组下使用不同的 repo 名称复制它。
注意:认为答案可能类似于another question,我无法通过谷歌搜索找到上述另一个问题,我猜其他用户可能也无法这样做。
【问题讨论】:
Git copying one repository to another empty one (duplicating)的可能重复 【参考方案1】:在 gitlab 中有开箱即用的功能:
-
转到现有项目的
Settings
-> General
最后展开的面板Advanced
包含Export
按钮。单击它,然后在此页面顶部您可以看到信息消息Project export started. A download link will be sent by email.
检查电子邮件。有以下消息:
项目 NAME_OF_YOUR_EXISTING_PROJECT 已成功导出。
可以从以下位置下载项目导出:SOME_LINK
下载链接将在 24 小时后失效。
-
点击SOME_LINK,然后检查
Downloads
文件夹
转到Project - Your projects
页面
点击按钮New project
在Blank project
选项卡上设置新项目的名称
然后转到Import project
标签
点击按钮Gitlab export
点击Choose file
,选择之前下载的文件*.tar.gz
点击按钮Import project
然后你会看到Import in progress
标签。
成交
【讨论】:
按照您的描述,我发现Import project
上的选项Gitlab export
可能隐藏在本地GitLab 实例上。它可以在管理菜单Admin Area > Settings > General > Visibility and access controls
(docs.gitlab.com/ee/user/admin_area/settings/…) 中激活。
你真棒=)【参考方案2】:
复制存储库
要复制一个仓库而不分叉它,您可以运行一个特殊的克隆命令,然后镜像推送到新的仓库。
在您可以复制存储库并推送到存储库的新副本或镜像之前,您必须在 GitHub/Gitlab 上创建新存储库。在这些示例中,exampleuser/new-repository
是镜像。
镜像仓库
1. 打开(Windows)Git Bash
你也可以使用 (mac)Terminal / (linux)Terminal
2. 创建存储库的裸克隆。
git clone --bare https://github.com/_exampleuser_/_old-repository_.git
3. 镜像推送到新存储库。
cd _old-repository_.git
git push --mirror https://github.com/_exampleuser_/_new-repository_.git
4. 删除您在第 2 步中创建的临时本地存储库。
cd ..
rm -rf _old-repository_
参考:https://help.github.com/articles/duplicating-a-repository/
【讨论】:
我意识到这是一篇旧帖子。我尝试了您的建议,但是当我进入第 3 步时,推送被拒绝并显示以下错误消息:! [remote denied] master -> master (pre-receive hook denied) 这可能是什么原因造成的? @LND 也许您的主分支仍然受到保护?您需要删除保护才能覆盖它。 @JoepBeusenberg master 分支不受保护。我重试了,仍然收到相同的错误消息。 这不会复制 GitLab 中的存储库设置。【参考方案3】:另一个最简单的方法是......
您可以通过提供 Git URL 来导入现有存储库:
-
从您的 GitLab 仪表板中单击 新建项目
切换到导入项目标签
点击按网址回购按钮
填写“Git 存储库 URL”和其余项目字段
点击创建项目开始导入过程
完成后,您将被重定向到新创建的项目
https://docs.gitlab.com/ee/user/project/import/repo_by_url.html
【讨论】:
最简单的一个。 这会复制存储库设置吗? 这会复制所有的分支吗?以上是关于如何在不分叉的情况下在 gitlab/github 上复制 git 存储库?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不打开任何对话框的情况下在 Facebook 上发布消息?
如何在不重叠的情况下在 UIButton 中实现两个 IBAction?