如何复制一个 git 存储库? (没有分叉)

我有两个存储库,我需要将其中一个完整地复制到另一个空的存储库上,这个存储库与第一个存储库的访问级别不同。副本和母存储库不应链接在一起。

我是新来的,如果有人能帮我就太好了。

138328 次浏览

参见 https://help.github.com/articles/duplicating-a-repository

简而言之:

为了做出一个完全相同的复制品,你需要同时执行一个裸克隆和一个镜像推送:

mkdir foo; cd foo
# move to a scratch dir


git clone --bare https://github.com/exampleuser/old-repository.git
# Make a bare clone of the repository


cd old-repository.git
git push --mirror https://github.com/exampleuser/new-repository.git
# Mirror-push to the new repository


cd ..
rm -rf old-repository.git
# Remove our temporary local repository

注意: 以上将工作良好的任何远程 git 回购,指令不是特定于 github

上面创建了一个新的远程回购副本,然后将其克隆到您的工作机器上。

也可以使用 收到

和 Gem 一起安装,

gem install git-copy

然后

git copy https://github.com/exampleuser/old-repository.git \
https://github.com/exampleuser/new-repository.git

如果要复制到 GitHub,可以使用 GitHub 导入器来完成。最初的回购甚至可以来自其他版本控制系统。

如果你只是想用现有文件中的全部或大部分文件创建一个新的存储库(例如,作为一种模板) ,我发现最简单的方法是使用所需的名称等创建一个新的回购,克隆到您的桌面上,然后只添加您想要在其中的文件和文件夹。

你不会得到所有的历史等,但你可能不希望在这种情况下。

打开终端。

创建存储库的一个简单克隆。

Git 克隆——裸 https://github.com/exampleuser/old-repository.git

Mirror-push to the new repository.

旧存储库

Git push ——镜像 https://github.com/exampleuser/new-repository.git

我已经注意到这里的一些其他的答案使用一个裸克隆,然后镜像推送到新的存储库,但是这确实 没有为我工作,当我打开新的存储库之后,文件看起来混淆了,不像我期望的那样。

这里有一个绝对适用于复制文件的解决方案,尽管它不能保存原始存储库的修订历史。

  1. 将存储库放到本地计算机上。
  2. 然后运行 rm -rf .git删除所有旧的 git 元数据,包括提交历史等。
  3. 通过运行 git init初始化一个新的 git 存储库。
  4. 运行 git add . ; git commit -am "Initial commit"-当然你可以调用这个提交你想要的。
  5. 将原点设置为新的存储库 git remote add origin https://github.com/user/repo-name(将 url 替换为新存储库的 url)
  6. 使用 git push origin master将其推送到新的存储库。

2021年11月更新

你现在可以很容易地从另一个 VC 在 github 中复制文件和文件夹。

步骤:

  1. 创建一个新的存储库
  2. 单击底部的 Import code 按钮

Import code

  1. 粘贴存储库的克隆 URL 并单击 Beginimport

Begin import

导入成功后,将通过电子邮件通知您。

  • 您需要复制需要克隆和处理的任何存储库的链接。 < a href = “ https://i.stack.imgur.com/UdeWY.png”rel = “ nofollow norefrer”> (here!)

  • 通过单击 Github 仪表板右上角的 +,从下拉列表中单击 导入存储库。< a href = “ https://i.stack.imgur.com/23iG9.png”rel = “ nofollow norefrer”> (here

  • 它将重定向到导入页面,您需要在第一个输入框中粘贴回购链接,并输入新存储库的名称。点击开始。< a href = “ https://i.stack.imgur.com/i8I2B.png”rel = “ nofollow norefrer”> (here!)

  • 然后,它将再次重定向到另一个页面,在那里它将克隆/导入回购到您的回购。它类似于 < a href = “ https://i.stack.imgur.com/dIAaV.png”rel = “ nofollow noReferrer”> this。

  • 当导入完成时,它会给你发邮件,或者你可以点击下面的链接打开新的回购。

  • 你可以继续回购的工作,并可以点击’在键盘上激活 github 开发人员,然后您可以继续编辑它。< a href = “ https://i.stack.imgur.com/9k1Ca.png”rel = “ nofollow norefrer”> (here

我希望这能回答你的问题。

花栗鼠

你可以直接在 Github 上做,我觉得这样更容易。 在创建了一个空的新存储库(子存储库)并希望它具有与(父存储库)相同的代码之后, click on the Code on the top bar. At the buttom, pick the last opion which says (...or import code from another repository). You will be prompted to enter a clone link of the repository you wish to import your code from. Paste the clone link of your (Parent repository) and press import.