2012-06-26 87 views
2

的“副本”我看到的答案类似的问题,我敢肯定,我可能只是不熟悉不够用Git和Github上的术语来知道它们是否适用于我的问题。我需要做的是克隆现有的Github远程存储库(我有贡献者可以访问的另一个用户名下的私人存储库),并在我的帐户下创建一个新的专用远程存储库。现有的回购用户将对回购,删除和重新推送做出重大修改,然后他们要求我克隆并创建一个副本,以便我们可以继续在我的用户下的回购协议中工作。如果可能,我想用repo保留提交历史记录。创建的github仓库

我在本地克隆,但不似乎无法弄清楚如何把它推到一个新的遥控器,是不是生性原来的用户。

回答

1

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

这是完全可能的所有者可以通过创建一个分支,使该分支实现他们的目标看他们如何渴望,可以更换主用它,如果这是所期望的最终目标。他们可以在不破坏所有现有历史的情况下做到这一点。

或者,您可能可以分叉存储库。但是,请记住,如果他们要完全重写历史记录,那么假设这是一个目标,它可能会很难将您正在进行的工作集成到分支上。

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

+0

我可能会误解 - 但我认为如果他们删除或无法识别地改变上游,我的分叉/克隆也会受到影响?听起来这样的假设是不正确的。 – user1483934

+1

如果您随后从中取出或取出,它们只会受到影响。 – wadesworld

+0

谢谢,这真的很有帮助,我几乎从根本上对Git的工作方式感到困惑。 – user1483934

2

你不能完成你想要什么样的forking做GitHub上的仓库,然后克隆,并就这一工作?

这也保留了这两个仓库之间的关系,并允许您的选项,在以后的日子,合并他们变成你的回购或反之亦然。

+0

由于它不以这种方式工作,我完全误解了相对于上游的副本。 – user1483934

0

当使用GitHub的接口,最简单的办法就是fork a repo

另外,如在GitHub上的以下Duplicating a repository文章建议,您可以通过以下shell命令实现回购重复:

  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