将git repo复制到其他网络



我的项目的git repo当前位于我的组织的本地网络上。该组织要求我将该项目的回购转移到另一个本地网络。我的目标是保留所有提交的历史记录和分支,而不仅仅是将文件复制粘贴到新的repo中。

如果有帮助的话,这两个网络都有一个GitLab克隆。

我怎样才能做到这一点?

任何帮助都将不胜感激。

有几种方法可以将本地存储库移动到新位置:

  1. 使用简单的复制粘贴

只要正确复制.git文件夹,这不会对您造成伤害。如果你把Git移到一个新的地方,它不会被混淆,因为它有一个";相对";项目所在位置的概念。但是,如果您的项目中有git version 1.7.8 or 1.7.9AND也有子模块,那么您应该小心使用这种方法,因为它可能会导致问题。点击此处了解更多信息。

  1. 使用git clone --mirror

这是一个更";git";做事的方式。如文件中所述

镜像

设置源存储库的镜像。这意味着——光秃秃的。与--bare相比,--mirror不仅将源的本地分支映射到目标的本地分支,还映射所有引用(包括远程跟踪分支、注释等(,并设置refspec配置,以便所有这些ref都被目标存储库中的git远程更新覆盖。

  1. 使用git bundle

这是另一个";git";这样做的方式。这将生成一个文件,您可以稍后将其移动到新的目的地并在那里应用它。如果在您的情况下,您在新目的地没有回购,我建议您遵循VonC关于使用git bundle移动所有内容的答案。

你可能想做一些类似的事情

$ git bundle create /tmp/foo master
$ git bundle create /tmp/foo-all --all
$ git bundle list-heads /tmp/foo
$ git bundle list-heads /tmp/foo-all

我认为最简单的方法是复制粘贴你的项目,如果你可以很容易地访问新的位置。

最新更新