在Gitlab上创建一个仓库的副本

5

我想要复制一个已有的代码库。我有一个名为Test的项目,希望创建一个名为Test1的副本。原因是新的代码库将使用不同的UI(从Angular替换为React),不希望有任何分支依赖于旧的代码库。

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

enter image description here


我不明白你关于无法使用git命令行的评论。如果你不能进行克隆,那么开发者实际上是如何开发的呢?就我个人而言,在许多公司环境中我都使用过git,并且在每一个环境中我们都可以正常地克隆repo并使用命令行工具(或IDE等)...因为这是git的关键所在。 - Mark Adelsberger
我们已经安装了Git并能够运行所有命令,但我认为问题在于通过命令行访问构件(以及通过浏览器访问某些网站)被阻止了。 - p0tta
好的...我不确定问题是否只是术语,但这仍然不合理。所以为了简化:一个开发人员加入团队。他们需要代码副本,以便可以对其进行开发处理。他们会做什么? - Mark Adelsberger
通过配置了所有代理设置的SourceTree,可以访问所有内容。当我通过cmd在项目上进行git克隆时,会出现一些致命错误。基本上,我没有管理员访问权限到我的Windows框。 - p0tta
1个回答

6

基于克隆的方法

你可以将仓库克隆并推送到另一个远程仓库(在服务器上手动创建):

  1. 创建一个新的仓库(这里是 https://gitlab.example.com/user/Test1
  2. 克隆你的原始仓库
git clone --mirror https://gitlab.example.com/user/Test

更改克隆存储库的远程地址:
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

基于Web的方法

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

命令行命令必须在您自己的计算机上运行(您也可以在Git图形界面中执行)。 - Simon Doppler
虽然我不理解 OP 对使用克隆的反对意见(请参阅我的问题评论),但我不同意此处记录的基于克隆的方法。使用“--mirror”更加直接,并且对存储库做出的假设更少。 - Mark Adelsberger
@MarkAdelsberger,你说得对,使用--mirror是正确的(我还应该使用push --allpush --tags)。 - Simon Doppler
@p0tta,你所说的“不要与现有存储库同步”是什么意思? - Simon Doppler
有一个名为 fork syncing 的选项。如果我创建了一个 fork,但没有勾选启用 fork syncing,会发生什么? - p0tta
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接