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

Posted

技术标签:

【中文标题】如何安全地更改 github 帐户名?【英文标题】:How to safely change github account name? 【发布时间】:2012-06-09 00:08:51 【问题描述】:

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

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

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

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

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

谢谢!

【问题讨论】:

当您联系 GitHub 并提出有关他们产品的支持问题时,他们说了些什么? 他们发送了这个:---------------------------------------- -- 来自:Tekkub (GitHub Staff) 主题:重命名用户帐户场景 对于(2),最好不要直接编辑配置,试试这个:help.github.com/articles/changing-a-remote-s-url 修复 URL 是重命名时唯一需要担心的事情,没什么其他变化。 ---------------------------------------------------- 效果很好。唯一的事情 - 那些在本地克隆我的项目的人需要手动重新克隆或更新遥控器 【参考方案1】:

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 可以正常工作。

【讨论】:

效果很好!此外,完成相同操作的命令略有不同:help.github.com/articles/changing-a-remote-s-url @Petros with fork 我的意思实际上是其他人的“git clone”。但在 Github 你是对的。因为所有的分叉都有不同的远程起源。感谢您的通知!我会改的 注意:GitHub 现在有来自重命名用户的存储库的 URL 重定向,因此您的克隆不会中断。【参考方案2】:

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

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

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

指向您之前的个人资料页面的链接,例如 https://github.com/previoususername,返回 404 错误。我们不能设置 将旧用户名重定向到新用户名以获取参考,例如 @提及。

但是,您的所有存储库都设置了重定向。网络和 git 访问旧位置继续运行,并重定向 向新用户名前进。

【讨论】:

【参考方案3】:

我在 ~/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 中并且你已经修复了旧变量和新变量之后。

【讨论】:

以上是关于如何安全地更改 github 帐户名?的主要内容,如果未能解决你的问题,请参考以下文章

在 Android Studio 中更改 Github 帐户

如何删除我的终端/计算机上的两个 GitHub 帐户之一?

在 Android Studio 中更改 Github 帐户

多个github帐户错误

如何在解析期间设置 github 令牌的自动更改?

更改用户输入的位数