27

谷歌上有很多答案都指向同一个方向,但是当谈到版本控制时,我不想尝试任何东西然后弄乱我的存储库。

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

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

4

5 回答 5

21

以下任何一项都将起作用:

  • 只需将 repo 的所有权转让给另一个用户,让他们将您添加为协作者。

  • 如果有人分叉您的仓库,那么您删除原始仓库,他们的分叉仍然存在,除非它是私有仓库。然后,他们可以将您添加为他们 fork 存储库的合作者。

  • 另一个用户可以简单地克隆你的 repo(提交完整),在 GitHub 上创建一个新的 repo,添加新 repo 的远程信息,并将你的 repo 推送到他们的新 repo。(然后,他们可以将您添加为协作者。)

于 2013-01-03T16:33:36.123 回答
12

要回答问题:

  1. 你不会丢失任何东西 - 甚至不会提交历史记录。Git 的重点在于它是去中心化的——每个拥有存储库副本的人都拥有一切。只是新的回购。

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

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

    或编辑.git/config文件。

我会说你应该:

  1. 转移存储库的所有权(或让客户端分叉它)。
  2. 更改您的 git 配置以推送到新存储库
  3. 你完成了。
于 2013-01-03T02:00:24.203 回答
5

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

转让所有权:将此 repo 转让给其他用户或您拥有管理员权限的组织。

于 2013-01-03T01:39:03.810 回答
1

这也可以直接在 PC 上使用桌面版 GitHub 完成,无需安装 CLI。

如上面@citruspi 所述,如果您编辑配置文件,则您正在手动执行此命令为您执行的操作。

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

如果您有 CLI,可以为您服务。

https://stackoverflow.com/a/14132101/3099982

或编辑 .git/config 文件。

下面的步骤...

  1. 在 Github 或 Github Desktop 中创建 /newRepo。
  2. 将该 /newRepo 克隆到您的本地计算机(如果您没有在 Github Desktop 中创建它)。
  3. 将要克隆的 repo 也克隆到本地机器上 /wantToCloneRepo。
  4. 删除 /newRepo 中的 .git 文件夹。
  5. 将文件从 /wantToCloneRepo 复制到本地文件夹 /newRepo
  6. 编辑文件 /newRepo/.git/config ,其中远程“原始”URL 现在应该等于 Github 上的新目标。即... https://github.com/DataAutomation/newRepo.git
  7. 查找用于说 fetch origin 的地方,它会说 Push。
  8. Push 它将保留您的提交历史记录,并且您将拥有一个新的 repo,而无需安装 CLI。
于 2021-05-13T19:48:41.607 回答
0

你不会失去任何东西。这就是 git 的意义所在。项目的每个副本都有一个完整的 repo 副本——你有它,github 有它,任何分叉它的人都有它。

远程的配置只是 .git/config 文件中的一行:

    url = git@github.com:mattneub/Programming-iOS-Book-Examples.git

您可以删除旧遥控器并创建一个新遥控器,但最简单的方法就是手动编辑该行。

这里没有什么神秘之处。.git 文件夹和您的存储库直接对您的视图开放。

于 2013-01-03T01:37:58.337 回答