19

我想更改我的 github 帐户名称,我在GitHub帐户设置中找到了一个选项。

但是,考虑到我自己的一些项目与此帐户相关联,我担心后果并想知道更改名称的最佳策略是什么。

到目前为止,我想出了这个计划:

  1. 在 GitHub 设置中更改帐户名称
  2. 对于“.git / config”文件中每个项目的本地文件夹,将远程“origin” url 更新为新的

这行得通吗?保存项目源的计算机上是否应该有任何进一步的步骤?更改名称会对那些在 GitHub 上克隆或分叉我的项目的人产生什么影响?

谢谢!

4

3 回答 3

14

1.) 您必须更改所有项目的远程地址。您可以通过以下方式查看它们:

git remote -v

之后删除旧的远程地址:

git remote rm git@github.com:old_account/foo.git

最后添加您的新远程地址:

git remote add origin git@github.com:new_account/foo.git

2.) 你所有克隆的 repos 都会中断。没有 URL 重定向或类似的东西。您可以更改本地克隆的存储库,但其他人必须指向新的存储库地址(如步骤 1)

注意:Github forked repos 可以正常工作。

于 2012-06-10T07:44:00.503 回答
14

GitHub 最近更改了他们的用户名重命名系统,现在为您设置了重定向。

我更改用户名时会发生什么?在 GitHub 帮助上:

在 GitHub 方面,一切都会表现得好像你的新用户名一直是你的名字。您的所有存储库现在都将属于该新名称,并且旧用户名基本上将不再存在。启动更改后,这可能需要几分钟才能完成。

指向您之前的个人资料页面的链接,例如 https://github.com/previoususername,会返回 404 错误。对于@mentions 等引用,我们无法设置从旧用户名到新用户名的重定向。

但是,为您的所有存储库设置了重定向。对旧位置的 web 和 git 访问继续起作用,并重定向到新用户名。

于 2013-11-03T23:00:20.787 回答
4

我在 ~/bin 中留下了一个名为 git-remote 的脚本,其中包含以下内容:

 #!/bin/sh
old=richoH
new=richo
git remote -v | grep $old | while read name url type; do
    newurl=`echo $url | sed -e "s/$old/$new/"`
    git remote set-url $name $newurl
done

这有点像黑客,但它工作得很好,只需 cd 进入 git repo 并调用git reremote(在确保它在你的$PATH并且你已经修复了旧变量和新变量之后。

于 2012-06-10T11:11:01.570 回答