我想更改我的 github 帐户名称,我在GitHub帐户设置中找到了一个选项。
但是,考虑到我自己的一些项目与此帐户相关联,我担心后果并想知道更改名称的最佳策略是什么。
到目前为止,我想出了这个计划:
- 在 GitHub 设置中更改帐户名称
- 对于“.git / config”文件中每个项目的本地文件夹,将远程“origin” url 更新为新的
这行得通吗?保存项目源的计算机上是否应该有任何进一步的步骤?更改名称会对那些在 GitHub 上克隆或分叉我的项目的人产生什么影响?
谢谢!
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 可以正常工作。
GitHub 最近更改了他们的用户名重命名系统,现在为您设置了重定向。
从我更改用户名时会发生什么?在 GitHub 帮助上:
在 GitHub 方面,一切都会表现得好像你的新用户名一直是你的名字。您的所有存储库现在都将属于该新名称,并且旧用户名基本上将不再存在。启动更改后,这可能需要几分钟才能完成。
指向您之前的个人资料页面的链接,例如 https://github.com/previoususername,会返回 404 错误。对于@mentions 等引用,我们无法设置从旧用户名到新用户名的重定向。
但是,为您的所有存储库设置了重定向。对旧位置的 web 和 git 访问继续起作用,并重定向到新用户名。
我在 ~/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
并且你已经修复了旧变量和新变量之后。