2013-01-03 93 views
11

在Google上有很多答案指向同一方向,但是当涉及到版本控制时,我不想尝试任何操作,然后搞乱我的存储库。将git存储库移动到另一个github用户

我已经在GitHub上建立了一个仓库,并且想将它移动到另一个用户,以便我可以关闭仓库。一旦属于他的账户,他就会邀请我回购。我想这是与客户合作的一个常见用例 - 一旦你完成了项目,你就把它交给他们。

现在,假设这是可能的,我将如何更改项目中的本地Git设置,以便我现在正在推进/从新位置拉出?而且,通过移动回购,我会失去提交历史记录吗?

回答

10

以下任一将工作:

  • 刚刚转会回购的所有权转让给其他用户,并让他们加入你作为一个合作者。

  • 但是,如果有人分叉你的回购,那么你删除原来的,他们的叉子仍然在那里。他们然后可以将您添加为他们的叉式回购协作者。

  • 或其他用户可以简单地克隆您的回购(完整提交),在github上创建一个新回购库,添加新回购库的远程信息,并将您的回购库升级到新库。 (然后将你添加为合作者)

+0

真棒,谢谢! – weltschmerz

+2

只需要xero在所选答案中更正某些内容。 Github文档说:“删除将删除所有分支的存储库。请注意,这只会影响私有存储库,而不会影响私有存储库。”因此,它看起来像上面的评论,“但如果有人叉你的回购,那么你删除原来的,他们的分叉仍然存在,”是不正确的,如果回购是私人的。 – JazzTpt

+0

https://help.github.com/articles/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility/ 但是,如果他们删除所有的叉,文件上用户电脑应该仍然在那里,我想,完全的历史吧?那么可以创建新的存储库。但是为什么分叉,为什么不克隆呢?然后,据我所知,它不会与父母关联。 –

0

你不会失去任何东西。这是git的要点。该项目的每个副本都有一个完整的repo副本 - 你拥有它,github拥有它,任何分叉它的人都拥有它。

远程的配置只是在git的/ config文件的行:

url = [email protected]:mattneub/Programming-iOS-Book-Examples.git 

您可以删除旧的遥控器和创建一个新的,但最简单的事情就是编辑该行用手。

这里没有神秘感。 .git文件夹和您的存储库直接打开您的视图。

4

你为什么不在github内部做到这一点?只需将所有权转让给新用户。转到Github上的设置。

转让所有权:将此回购转让给另一个用户或转到您拥有管理权限的 组织。

+0

这似乎并不像听起来那么容易 - 出现很多信息的长时间警告。如果我执行以下操作:其他用户设置新的回购,我将本地回购地址更改为新回购地址,推送并删除自己的回购。这会起作用吗?新的回购会失去提交历史记录吗? – weltschmerz

+0

是的,你的方法也可以。你不会失去任何历史。 –

+0

非常容易和有效。 –

7

要回答的问题:

  1. 你不会失去任何东西 - 甚至不提交历史。 Git的意义在于它是分散的 - 每个拥有版本库副本的人都拥有一切。只是新的回购。

  2. 很容易更改git设置以推送到新的存储库。您可以使用

    git remote set-url origin git://new.url.here 
    

    或编辑.git/config文件。

我会说,你应该:

  1. 库的所有权转移(或在客户端叉的话)。
  2. 更改你的git配置以推送到新的存储库
  3. 你完成了。
相关问题