Мне нужно было переключить учетные записи GitHub, чтобы отправить что-то в корпоративный репозиторий. Я попробовал изменить свое имя пользователя на новое, но меня постоянно отклоняют.
remote: Permission to Company/project.git denied to oldUserName.
fatal: unable to access 'https://company.com/Company/project.git/': The requested URL returned error: 403
Вот все шаги по устранению неполадок, которые я предпринял:
- gh auth logout/gh auth login. Когда я проверяю статус, кажется, что я вошел в правильный аккаунт, но все равно не могу отправить изменения из него.
- git config –global user.email “[email protected]“
- Настройка SSH-ключа для моего нового имени пользователя
- git remote set-url https://github.com/userUserName/project. URL был получен из git remote -v, и была получена следующая ошибка:
usage: git remote set-url [--push] <name> <newurl> [<oldurl>]
or: git remote set-url --add <name> <newurl>
or: git remote set-url --delete <name> <url>
--[no-]push манипуляция с URL-адресами для отправки
--[no-]add добавление URL
--[no-]delete удаление URL
enter code here
Я прочитал много вопросов на Stack Overflow и учебников по GitHub, но они все, похоже, не сработали. Я буду очень признателен за любой совет или помощь.
Ответ
Чтобы решить проблему с ошибкой "Permission denied" при попытке выполнить git push
из-за использования старого аккаунта, следует выполнить несколько шагов. Вот полное руководство:
-
Проверьте настройки Git: Убедитесь, что локальная конфигурация Git настроена на новый аккаунт. Выполните следующие команды в терминале:
git config --global user.name "Ваше Новое Имя Пользователя" git config --global user.email "ваш_новый_email@example.com"
-
Проверьте кэши учетных данных: Возможно, Git кэширует учетные данные старого пользователя. Для удаления кэша используйте команды:
Для Windows:
git credential-manager uninstall
Для macOS:
git credential reject
Для Linux, попробуйте удалить файлы в
.git-credentials
или~/.gitconfig
. -
Проверьте удаленный URL: Убедитесь, что URL репозитория настроен правильно. Используйте команду:
git remote -v
Для изменения URL на новый, выполните:
git remote set-url origin https://github.com/новыйПользователь/проект.git
Обратите внимание на то, что ключевое слово
origin
может отличаться, если вы используете другое имя для удаленного репозитория. -
Использование SSH вместо HTTPS: Если вы настроили SSH-ключ для вашего нового аккаунта, то используйте SSH URL вместо HTTPS. Обычно он выглядит так:
git remote set-url origin git@github.com:новыйПользователь/проект.git
-
Проверка SSH подключения: Убедитесь, что SSH ключ корректно настроен. Введите команду:
ssh -T git@github.com
Если все настроено правильно, вы должны увидеть сообщение с вашим именем пользователя.
-
Логин через GitHub CLI: Если вы используете GitHub CLI, убедитесь, что вы правильно вошли в свою учетную запись:
gh auth login
Следуйте инструкциям и выберите "GitHub.com", затем выберите метод аутентификации (например, с помощью браузера или SSH).
-
Темпоральное решение с форком: Если ничего не помогает, и вы не можете получить доступ к оригинальному репозиторию, вы можете создать форк этого репозитория на вашем новом аккаунте, склонировать его и работать с новым форком.
- Обратитесь за помощью: Если после выполнения всех вышеперечисленных шагов проблема сохраняется, обратитесь к администратору репозитория или в службу поддержки GitHub для получения дальнейшей помощи.
После выполнения всех шагов попробуйте заново выполнить git push
и эта проблема должна быть решена. Если возникнут дополнительные вопросы, не стесняйтесь их задавать!