5

我看到了类似问题的答案,我确信我可能对 Git 和 Github 术语不够熟悉,无法知道它们是否适用于我的问题。我需要做的是克隆一个现有的 Github 远程存储库(另一个人的用户名下的私有存储库,我有贡献者访问权限)并在我的帐户下创建一个新的私有远程存储库。现有的 repo 用户将对 repo 进行重大更改、删除和重新推送,然后他们希望我克隆并创建一个副本,以便我们可以在我的用户下继续从 repo 工作。如果可能的话,我想用 repo 保存提交历史。

我已经在本地克隆,但似乎无法弄清楚如何将其推送到并非源自原始用户的新远程。

4

3 回答 3

3

使用 GitHub 界面时,最简单的方法是fork 一个 repo

或者,如以下在 GitHub 上复制存储库文章中所建议的,您可以通过以下 shell 命令实现 repo 复制:

  1. 创建存储库的裸克隆:

    git clone --bare https://github.com/exampleuser/old-repository.git
    
  2. 镜像推送到新存储库:

    cd old-repository.git
    git push --mirror https://github.com/exampleuser/new-repository.git
    
  3. 删除您在步骤 1 中创建的临时本地存储库:

    cd ..
    rm -rf old-repository.git
    
于 2018-01-15T01:09:13.603 回答
2

您是否无法通过在 github 上分叉存储库然后克隆并处理它来完成您想要做的事情?

这也保留了两个存储库之间的关系,并允许您在以后选择将它们的更改合并到您的存储库中,反之亦然。

于 2012-06-26T21:05:16.730 回答
1

我们必须有更多的细节,但很有可能你试图做的事情是不必要的。

所有者很可能可以通过创建一个分支并使该分支看起来像他们想要的那样来实现他们的目标,如果这是所需的最终目标,可以用它替换 master。他们可以在不破坏所有现有历史的情况下做到这一点。

或者,您可以分叉存储库。但是,请记住,如果他们要完全改写历史,那么如果这是一个目标,那么整合你在分叉上所做的工作可能会变得很困难。

您还可以通过删除当前远程git remote rm origin并创建一个指向您帐户下创建的存储库的新远程来推送您克隆的副本。但是,如果原始存储库完全更改,那么将很难集成在您的“副本”上完成的任何工作。

于 2012-06-26T21:12:37.197 回答