如何安全地更改github帐户名?

时间:2012-06-04 22:45:24

标签: git github rename account

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

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

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

  1. 在GitHub设置中更改帐户名称
  2. 对于'.git / config'文件中的每个项目的本地文件夹,将远程“origin” url更新为新的
  3. 这会有用吗?是否应该在拥有项目资源的计算机上有任何进一步的步骤?名称更改会对那些在GitHub上克隆或分叉项目的人产生什么影响?

    谢谢!

3 个答案:

答案 0 :(得分: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。)所有克隆的回购将破解。没有URL重定向或类似的东西。您可以更改本地克隆回购,但其他人必须指向新的回购地址(如步骤1)

注意:Github forked repos工作没有任何问题。

答案 1 :(得分:12)

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

来自GitHub帮助中的What happens when I change my username?

  

在GitHub端,一切都会像你的新用户名一样   一直是你的名字。您的所有存储库现在都属于   新名称和旧用户名基本上不再存在。   在您开始更改后,这可能需要几分钟才能完成。

     

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

     

但是,会为所有存储库设置重定向。网络和   git访问旧位置继续运行,并重定向   朝着新的用户名。

答案 2 :(得分:3)

我在〜/ bin中留下了一个名为git-reremote的脚本,内容如下:

 #!/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

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