Как безопасно изменить имя учетной записи github?

Я хотел бы изменить имя моей учетной записи github, я нашел опцию в настройках учетной записи GitHub.

Тем не менее, я обеспокоен последствиями и хотел бы знать, что является лучшей стратегией изменения имени, учитывая, что у меня есть некоторые проекты, связанные с моей учетной записью.

До сих пор я придумал этот план:

  • Изменить имя учетной записи в настройках GitHub
  • Для каждой локальной папки проекта в файле .git/config обновляется удаленный "источник" URL-адреса нового

Будет ли это работать? Должны ли быть какие-либо дальнейшие шаги на компьютере, который содержит источники проекта? Каким будет влияние смены имени на тех, кто клонировал или разветкил мои проекты на GitHub?

Спасибо!

Ответы

Ответ 1

1.) Вы должны изменить все удаленные адреса ваших проектов. Вы можете увидеть их через:

git remote -v

После этого удалите старые удаленные адреса:

git remote rm [email protected]:old_account/foo.git

наконец добавьте новый удаленный адрес:

git remote add origin [email protected]:new_account/foo.git

2.) Все ваши клонированные репозитории будут разорвать. Нет URL-перенаправления или чего-либо подобного. Вы можете изменить локальные клонированные репозитории, но другие должны указывать на новые параметры репо (например, на шаге 1).

Примечание. Развернутые репозитории Github работают без проблем.

Ответ 2

Недавно GitHub изменил систему переименования имени пользователя и теперь перенаправляет вас.

Из Что произойдет, когда я изменю свое имя пользователя? в справке GitHub:

На стороне GitHub все будет вести себя так, как если бы ваше новое имя пользователя всегда было вашим именем. Все ваши репозитории теперь будут принадлежать что новое имя и старое имя пользователя существенно больше не будут существовать. Это может занять несколько минут после начала изменения.

Ссылки на предыдущую страницу профиля, например https://github.com/previoususername, верните ошибку 404. Мы не можем установить перенаправление от старого имени пользователя к новому для ссылок, таких как @mentions.

Однако перенаправление настраивается для всех ваших репозиториев. Как веб, так и git доступ к старой папке продолжает функционировать и перенаправлять к новому имени пользователя.

Ответ 3

Я оставил script в моем ~/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

Это немного взломанный, но он работает достаточно хорошо, просто cd в репозиторий git и вызовите git reremote (после того, как убедитесь, что он в вашем $PATH, а также что вы исправили старые и новые переменные.