如何在不同步到原始仓库的情况下将 git 仓库复制到新的仓库

问题描述 投票:0回答:1

我正在尝试制作一个远程 git 仓库的完整副本,它将包括完整的历史记录(最好能够在事后删除标签)作为一个单独的远程 git 仓库。我发现唯一能做到这一点的就是镜像回购协议。问题是我希望新创建的回购完全独立于原始回购,但镜像仍与原始回购同步。

有什么方法可以将原始回购的完整副本创建到新回购中,我可以在其中保留分支和历史记录但删除标签并将其与原始回购完全断开,以便它们完全是他们自己的回购无法推送/拉/彼此同步?

如前所述,我尝试使用镜像仓库

Git 克隆 — 原始仓库 url git push —mirror new-repo-url

但我不确定如何取消镜像与原始镜像的同步

git clone mirror git-mirror
1个回答
1
投票

Git 存储库仅通过其 remotes 相互连接。删除遥控器。

git clone
正常。这是原始存储库及其历史、分支和标签的完整副本。

克隆创建了一个远程到原始仓库的远程仓库,称为“origin”。删除它:

git remote rm origin
。这将删除所有远程分支和标签(origin/main、origin/v1.1 等)。现在你克隆的仓库没有远程,也没有与原始仓库的连接。


根据评论中的讨论,让我们来看看这个。

你有一个远程仓库,假设它在 git:example.com/repo.git.

你有一个从这个远程克隆的本地仓库。

你想...

  • 复制一份遥控器。
  • 与原文无关
  • 并在副本处有一个本地回购点。

制作独立的远程副本...

  1. 制作遥控器的裸克隆:
    git clone --bare git:example.com/repo.git
    .
  2. 移除其原点遥控器:
    git remote rm origin
    .
  3. 像上传任何其他文件一样将其上传到服务器。

现在你有一份原件的副本,没有参考原件。假设它在 git:example.com/copy.git.

然后拥有副本的本地克隆...

  1. 克隆一个新的本地仓库:
    git clone git:example.com/copy.git
  2. 或者将您现有的本地存储库指向副本:
    git remote set-url origin git:example.com/repo.git
    git pull
    以确保它是最新的。
© www.soinside.com 2019 - 2024. All rights reserved.