Как переключить пользователя git на терминал?

46

Я пытаюсь отправить проект в удаленный репозиторий из командной строки.

Из моего локального каталога я нажал:

$ git push

и получите следующую ошибку:

remote: разрешение для username1 / repo.git запрещено для username2.
Неустранимый: невозможно получить доступ к https://github.com/username1/repo.git/ :
запрошенный URL-адрес вернул ошибку: 403

Где username1моя учетная запись пользователя github, на которой размещен репозиторий, на который я хочу перейти, и username2это старая учетная запись, которую я использовал на этом компьютере.

Я использую OS X Yosemite (v10.10.5) на Macbook Air. И я бы предпочел использовать https вместо ssh .

Как мне обновить систему, username1чтобы я мог успешно нажать на мой пульт?

Редактировать: для ясности, я не говорю просто о редактировании config userобъекта, например,

$ git config --global user.name "Billy Everyteen"
$ git config --global user.email "billyeveryteen@example.com"

Они не имеют ничего общего с аутентификацией. Мой вопрос касается аутентификации пользователя, необходимой для записи в мой удаленный репозиторий.

Mowzer
источник
Спасибо. Но это касается только установки имени пользователя. Не аутентификация. Другими словами, эта документация показывает нам, как связать имя того, кто получает кредит за коммиты. Но на самом деле это не дает пользователю права выдавать коммиты.
Mowzer
1
Вы можете изменить его, используя команду, задокументированную по адресу git-scm.com/docs/gitcredentials . Или, если вы хотите очистить учетные данные, вы можете посмотреть на этот вопрос stackoverflow.com/questions/15381198/… .
Джон
Это не решает проблему!
Михаил Салари
что если я не хочу менять локальные настройки git?
Аркадий

Ответы:

42

В дополнение к изменению имени пользователя и электронной почты с терминала, используя git config:

$ git config --global user.name "Bob"
$ git config --global user.email "bob@example.com"

вам нужно будет удалить информацию авторизации из связки ключей. Это то, с чем я тоже боролся, пока не обнаружил, что у меня также есть сертификат в моей цепочке для ключей.

Откройте доступ к связке ключей, нажмите «Все элементы» и выполните поиск git. Вы получите несколько таких предметов:

Скриншот

Удалить их. Теперь попробуйте нажать на репо, и git попросит вас написать пароль для пользователя, и вам будет хорошо идти.

Саид Сикира
источник
1
А как насчет пользователей Windows?
Акс ..
2
у меня есть несколько учетных записей, что я должен делать
Amerrnath
У меня та же проблема с win7. Я не уверен, что решение :(
Fiddle Freak
22

Для пользователей Cli, просто используйте это: git config credential.username 'Billy Everytee'

Jackman
источник
Вам необходимо временно отключить 2FA.
bbaassssiiee
10

Для пользователя Windows:
следуйте инструкциям:
Панель управления >> Учетная запись пользователя >> Диспетчер учетных данных >> Учетные данные Windows >> Общие учетные данные

удалить учетные данные git.
в следующий раз, когда вы будете выдвигать репо, он попросит вас предоставить учетные данные
Ответьте ссылку для подробного объяснения

Шубхам Чадокар
источник
Спасибо! Это было то, что я искал в Windows.
JCF
@JCF Добро пожаловать! Я рад, что это помогло!
Шубхам Чадокар
6

Перечислите свой git config.

git config --list

Изменить имя пользователя и адрес электронной почты глобально

git config --global user.name "Nanhe Kumar"
git config --global user.email "info@nanhekumar.com"

Изменить имя пользователя и адрес электронной почты для текущего репо

git config  user.name "Nanhe Kumar"
git config  user.email "info@nanhekumar.com"

Измените URL репо, если вы используете битовую корзину.

nano .git/config

Этот файл будет примерно таким. [core] repositoryformatversion = 0 fileMode = false bare = false logallrefupdates = true ignorecase = true precomposeunicode = true [remote "origin"] url = https://nanhe@bitbucket.org/nanhekumar/myproject.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master

[user]
        name = Nanhe Kumar
        email = info@nanhekumar.com
Наньхэ Кумар
источник
Это наиболее полный ответ, учитывая глобальные и локальные объемы репо.
Джордан Стефанелли