在谷歌上有很多指向同一方向的答案,但当涉及到版本控制时,我不想尝试任何操作然后弄乱我的代码库。
我在GitHub上建立了一个仓库,并想将其移动到另一个用户那里,以便我可以关闭该仓库。然后他会邀请我加入该仓库,一旦它属于他的账户。我猜这是与客户合作的常见用例 - 项目完成后,将其移交给客户。
现在,假设这是可能的,我该如何更改项目中本地Git设置,以便我现在将它推送到/拉取自新位置?并且,通过移动仓库,我会失去提交历史吗?
在谷歌上有很多指向同一方向的答案,但当涉及到版本控制时,我不想尝试任何操作然后弄乱我的代码库。
我在GitHub上建立了一个仓库,并想将其移动到另一个用户那里,以便我可以关闭该仓库。然后他会邀请我加入该仓库,一旦它属于他的账户。我猜这是与客户合作的常见用例 - 项目完成后,将其移交给客户。
现在,假设这是可能的,我该如何更改项目中本地Git设置,以便我现在将它推送到/拉取自新位置?并且,通过移动仓库,我会失去提交历史吗?
以下任何一种方法都可以:
将repo的所有权转让给另一个用户,然后由他们将您添加为协作者。
如果有人fork了您的repo,然后您删除了原始repo,他们的fork repo仍然存在,除非它是私有存储库。然后他们可以在其fork repo上将您添加为协作者。
另一个用户可以简单地克隆您的repo(提交内容不变),在GitHub上创建一个新的repo,添加新repo的远程信息,然后将您的repo推送到他们的新repo上。(然后,他们可以将您添加为协作者。)
回答问题:
您不会失去任何东西 - 甚至不会丢失提交历史记录。Git 的重点在于它是分散的 - 拥有仓库副本的每个人都拥有所有内容。只需新建一个仓库。
将 Git 设置更改为推送到新仓库非常容易。您可以使用
git remote set-url origin git://new.url.here
或者编辑 .git/config
文件。
我建议你:
为什么不在GitHub上操作呢?只需将所有权转移给新用户,然后进入GitHub的“设置”页面。
转移所有权:将此存储库转移到另一个用户或您拥有管理员权限的组织。
在PC上,可以直接使用GitHub桌面版而不安装CLI来完成这一操作。
正如@citruspi所述,如果您编辑配置文件,则相当于您手动执行此命令。
git remote set-url origin git://new.url.here
如果您拥有 CLI,则可以为您执行此操作。
https://dev59.com/EmYq5IYBdhLWcg3w30Xc#14132101
或编辑 .git/config 文件。
以下是步骤...
你不会失去任何东西。这就是git的优点。每个项目的副本都有一个完整的repo副本 - 你有它,github也有它,任何fork它的人也有它。
远程配置只是.git/config文件中的一行:
url = git@github.com:mattneub/Programming-iOS-Book-Examples.git
你可以删除旧的远程并创建一个新的,但最简单的方法就是手动编辑那一行。
这里没有什么神秘的。.git文件夹和你的代码库直接对你开放。