Як переключити користувача git на термінал?


46

Я намагаюся виштовхнути проект у віддалений сховище з командного рядка.

Зсередини мого локального каталогу я потрапив:

$ git push

і отримати таку помилку:

віддалений: у дозволі на ім’я користувача1 / repo.git відмовлено в ім’я користувача2.
фатально: не вдається отримати доступ до " 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

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"

вам потрібно буде видалити інформацію про авторизацію з Keychain. Це те, з чим я також боровся, поки не виявив, що також маю сертифікат у своєму брелоку.

Відкрийте доступ до брелка, натисніть Усі елементи та шукайте git. Ви отримаєте такі елементи, як цей:

Знімок екрана

Видаліть їх. Тепер спробуйте натиснути репо, і git попросить вас написати пароль для користувача, і ви будете готові йти.


1
Що з користувачами Windows?
Акс ..

2
У мене є кілька облікових записів, що мені робити
Amerrnath,

У мене те саме питання з win7. Я не впевнений, що таке рішення :(
Fiddle Freak

22

Для користувачів клієнтів просто використовуйте це: git config credential.username 'Billy Everytee'


Вам потрібно відключити 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

Це найбільш ґрунтовна відповідь з урахуванням глобальної та локальної сфери репо.
Йордан Стефанеллі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.