Как безопасно изменить имя учетной записи 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
, а также что вы исправили старые и новые переменные.