【问题标题】:Create a duplicate of a repository on Gitlab在 Gitlab 上创建存储库的副本
【发布时间】:2019-08-03 05:46:15
【问题描述】:

我正在尝试复制现有存储库。我有一个名为 Test 的项目,我想创建一个名为 Test1 的副本。我不只是想创建它的另一个分支的原因是因为新的 repo 将具有不同的 UI(用 React 替换 Angular)并且不希望任何分支依赖于旧的。

我是 Gitlab 的管理员,但我只看到移动和删除存储库的选项,但没有复制存储库。这是在公司的基础设施内部,所以我无法访问命令行 git 工具,但我是 Gitlab 的管理员。

【问题讨论】:

  • 我没有关注您关于无法使用 git 命令行的评论。如果不能克隆,开发者实际上是如何开发的? FWIW 我在许多企业环境中使用过 git,在其中的每一个环境中,我们都正常克隆了 repo,然后可以使用命令行工具(或 IDE,或其他)......因为这就是 git 的重点跨度>
  • 我们已经安装了 git 并且能够运行所有命令,但我认为问题在于通过命令行(以及通过浏览器访问某些网站)访问工件被阻止。
  • 好的...我不确定这个问题是否只是术语,但这对我来说仍然没有意义。所以为了简化:开发人员进入团队。他们需要一份代码副本,以便对其进行开发。他们做...什么?
  • 通过 SourceTree 访问所有内容,我猜它配置了所有代理设置。当我通过 cmd 对项目进行 git clone 时,我遇到了一些致命错误。基本上我没有管理员权限访问我的 Windows 机器。

标签: git repository gitlab


【解决方案1】:

基于克隆的方法

您可以克隆存储库并将其推送到不同的远程(您将在服务器上手动创建):

  1. 创建一个新的存储库(此处为https://gitlab.example.com/user/Test1)
  2. 克隆您的原始存储库
git clone --mirror https://gitlab.example.com/user/Test
  1. 更改克隆存储库上的远程:
cd Test # optionally rename the directory if you want to keep it
git remote remove origin
git remote add origin git@gitlab.example.com:user/Test1
  1. 推送到您的新遥控器
git push --all origin
git push --tags origin

基于网络的方法

  1. 创建临时命名空间(例如组)或使用现有命名空间
  2. 将您的项目分叉到临时命名空间
  3. 删除分叉关系
  4. 将分叉项目重命名为 Test1(确保同时更改路径和名称)
  5. 将项目移交给原所有者
  6. 删除临时命名空间(如果适用)

【讨论】:

  • 就像我上面提到的,我在公司基础设施中,由于一些代理设置,我无法访问 git 命令行。我需要尝试从 Gitlab 进行操作。我知道使用命令行很容易。
  • 命令行命令必须在你自己的机器上运行(你也可以在 git 图形前端)
  • @p0tta 我用纯基于网络的方法更新了我的答案(甚至不需要管理权限)
  • 虽然我不理解 OP 反对使用克隆(请参阅我对问题的评论),但我不同意此处记录的基于克隆的方法。使用 --mirror 更直接,并且对 repo 的假设更少。
  • 如果我 fork 并且不将其与现有存储库同步怎么办?
猜你喜欢
  • 2012-06-28
  • 2018-11-16
  • 2016-11-01
  • 1970-01-01
  • 2013-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-17
相关资源
最近更新 更多