Помощник Git для довіри - оновлення пароля


198

Наразі я використовую GitHub через HTTPS і в мене встановлена ​​остання версія Git (1.9.0) разом із помічником для введення даних Git у Windows 7.

Налаштувавши своє оточення, я наказав git-повноваженням назавжди запам'ятати своє ім’я користувача та пароль.

Нещодавно я оновив свій пароль GitHub через веб-сайт, і тепер більше не в змозі натискати / тягнути / витягувати тощо.

Як би я міг оновлювати свій пароль на помічнику git-повноважень у Windows 7?


6
Просте, використовуйте "git config --global credential.helper wincred" та введіть ID користувача та пароль; тоді це буде збережено для вас, коли наступного разу ви зміните свій пароль, перезапустіть вище команду.
Акшай Локур

@AkshayLokur - це правильна відповідь.
Равімалія

Якщо все інше не вдається, і ви використовуєте TortoiseGit, ви можете спробувати дію через це. Наприклад, витягнути або отримати за допомогою Tortoise запропонує пароль, який ви зможете оновити. Здається, це замінить кеш Git Bash, і ви можете знову використовувати bash.
Пол Ф. Вуд

Відповіді:


282

Жодна з цих відповідей не працювала на мою проблему з обліковими записами Git. Ось що було, якщо комусь це потрібно (я використовую Git 1.9 у Windows 8.1).

Щоб оновити свої облікові дані, перейдіть до Панелі керуванняМенеджер довірених данихЗагальні облікові дані . Знайдіть облікові дані, пов’язані з вашим обліковим записом Git, і відредагуйте їх, щоб використовувати оновлений пароль.

Довідка: Як оновити свої облікові дані Git в Windows

Зауважте, що для використання диспетчера облікових даних Windows для Git вам потрібно налаштувати помічник облікових даних таким чином:

git config --global credential.helper wincred

Якщо у вас є кілька облікових записів GitHub, які ви використовуєте для різних сховищ, вам слід налаштувати облікові дані, щоб використовувати повний шлях до сховища (а не лише домен, який за замовчуванням):

git config --global credential.useHttpPath true

21
Це має бути прийнятою відповіддю, якщо вона git config --listмістить credential.helper=wincred.
MF

6
Працював для мене - дякую - і дізнався про менеджера облікових даних Windows.
rwalter

Це. зміна пароля не спрацювала, але я видалив облікові дані, а потім git push знову попросив облікові дані, і це спрацювало.
BiAiB

2
Я думаю, що це працює і для вікна 8.1, і для вікна 10. У моєму випадку: вікно 10 Pro, git 2.17
Thinhbk

2
Для всіх, хто (як я) видаляє збережені облікові дані, сподіваючись на ще одне підказку, але підказка не відображається. З Диспетчер облікових даних, ви можете з адресою . Http або Https - те саме, важливий біт - це на початку. ADDGeneric Credentialgit:http://yourserver:port/git:
A. Chiesa

101

Під час моєї першої спроби отримати Git після зміни мого пароля, мені сказали, що комбінація мого імені користувача / пароля недійсна. Це було правильно, оскільки помічник git-довіри кешував мої старі значення.

Однак я спробував інший збір git після перезавантаження мого терміналу / командного рядка, і цього разу помічник введення даних запропонував мені ввести своє ім'я користувача та пароль GitHub.

Я підозрюю, що початковий невдалий запит на отримання Git у поєднанні з перезавантаженням мого терміналу / командного рядка вирішив це для мене.

Я сподіваюся, що ця відповідь допоможе будь-кому ще в подібній позиції!


2
Просто перезапустіть Git Bash, він запропонує діалогове вікно для введення нового імені користувача / пароля.
Куан

2
Для запису я зміг вирішити це, зробивши ще один витяг / витяг, не перезавантажуючи сеанс Powershell в Windows 7. Windows запропонував мені отримати нові кредити з другої спроби.
Бендер найбільший

перезапуск консолі / програми зробив для мене "wincred" роботу. (Мені довелося перезапустити консоль і "Atom", і все спрацювало нормально)
low_rents

3
Введення будь-якої команди git, яка потребує облікових даних вдруге, здається, це робить, не просто git fetch, вона також працювала на секунду git clone.
навігатор_

дуже тобі дякую! Кожен раз, коли я змінюю свій пароль домену, я повинен пам’ятати, як оновити свої облікові дані. Підбір - Це працювало для мене!
Олександр Братцев

74

Рішення за допомогою командного рядка для Windows, Linux та MacOS

Якщо ви оновили свій пароль GitHub на сервері GitHub, у першій спробі git fetch/pull/pushкоманди він генерує повідомлення про помилку аутентифікації .

Виконайте ту саму git fetch/pull/pushкоманду вдруге, і вона запропонує ввести облікові дані (ім’я користувача та пароль). Введіть ім’я користувача та новий оновлений пароль сервера GitHub і вхід буде успішним.

Навіть у мене була ця проблема, і я виконав вищезазначені кроки і зробив !!


@ Вінсент: з чим ти стикаєшся ??
Фарук

2
Я просто повторюю дистанційне: Недійсне ім’я користувача або пароль. фатально: аутентифікація не вдалася
RichMeister

1
@RichMeister: З другого разу він запитає ім’я користувача / пароль. Просто введіть своє ім’я користувача / new_password.
Фарук

3
Працював для мене на MacOS з кешованими обліковими записами після зміни пароля. Перший раз отримайте "Підтвердження автентичності за ...". Спробував ще раз, і йому було запропоновано ввести облікові дані, ввести користувальницький і новий пароль, а тепер працює знову
Кевін Гук

1
Це найкраща / найпростіша відповідь
Райан Бокен

74

Якщо ви є користувачем Windows, ви можете видалити або оновити свої облікові дані в Менеджері облікових даних.

У Windows 10 перейдіть до наступного шляху:

Панель керуванняУсі елементи панелі керуванняДиспетчер даних

Або шукайте "менеджер облікових даних" у розділі "Пошук Windows" у меню "Пуск".

Потім у диспетчері облікових даних виберіть "Акредитиви Windows".

Кредитний менеджер покаже багато елементів, включаючи ваш світогляд та сховище GitHub у розділі "Загальні облікові дані"

Ви натискаєте стрілку вниз, що знаходиться праворуч від вашого Git: і відображатиметься параметри редагування та видалення. Якщо ви вилучите, спливаюче вікно облікового запису з’явиться наступного разу, коли ви вийдете або витягнете Або ви можете там безпосередньо редагувати облікові дані.


3
Після спроб інших варіантів для мене працював лише цей. Тут я знайшов інформацію: cmatskas.com/how-to-update-your-git-credentials-on-windows
neomib

Примітка. Цей елемент управління НЕ ДОСТУПНИЙ ЧЕРЕЗ МЕТРО UI "КОНТРОЛЬНИЙ ПАНЕЛ"! Щоб control.exeпобачити цей елемент управління, потрібно запустити вручну.
AnrDaemon

Це дуже допомогло! Я навіть не знав, що цей інструмент існує.
щелепа

35

Спочатку знайдіть версію, яку ви використовуєте за допомогою команди Git git --version. Якщо у вас новіша версія, ніж 1.7.10, просто використовуйте цю команду:

git config --global credential.helper wincred

Потім зробіть git fetch, тоді буде запропоновано оновити пароль.

Тепер він не буде запитувати пароль кілька разів у Git.


7
Це не відповідає на запитання
disklosr

2
@disklosr Так. Він змушує Git запросити оновлений пароль наступного разу, коли ви виконаєте віддалену дію.
Nilpo

1
@Nilpo Що таке "віддалена дія"? Чи не повинен "git push origin xxx" бути віддаленою дією? Це не робити. натомість я отримую віддалений: Недійсне ім’я користувача або пароль.
RichMeister

1
Це працювало для мене. Після виконання цієї команди. Зробіть "git fetch", вам буде запропоновано отримати облікові дані, надайте його.
Олексій

Чому --global? Хіба я не ризикую отримати запит про всі мої сховища, а не лише про це?
Томас Веллер

29

Мені здається, що відповіді тут застарілі. Для мене під Windows 10 та Git 2.15.0 це було зроблено:

git credential reject
protocol=https
host=github.com
<Empty line here>

А потім встановити нове ім’я користувача та пароль:

git credential fill
protocol=https
host=github.com
<empty line here>

Після цього, якщо тепер облікові дані працюють на бажаному цільовому хості, ми повинні використовувати git credential approve-значимо в типовому використанні облікових даних Git (крок 4) - щоб повідомити помічників облікових записів позначити облікові дані як затверджені та повторно використовувати їх у майбутніх з'єднаннях.


1
Для мене, виконуючи git credential fillчастину як така є, вона автоматично генерує старий неправильний пароль; Мені довелося встановити нову вручну з цією командою, щоб вона працювала; все одно, дякую, ця відповідь допомогла мені у цій проблемі!
Emerson Cardoso

Підняти до вершини! Скільки витрачено часу на читання застарілих рішень. Насправді тут винен менеджер Git Credential, я думаю, що я маю переживати біль, коли обертаються доменні доменні слова.
Яніс Вейнберг

1
після fill, чи не повинні ми користуватися approve?
З. Хулла

На моїй машині git credential rejectніколи не закінчується
Томас Веллер

@ThomasWeller вам потрібно натиснути клавішу Enter, щоб залишити порожній рядок там, і він завершиться.
atavio

19

FWIW, я наткнувся на цю саму цю ж проблему (і мій начальник теж, тому він став інтенсивнішим).

Миттєве рішення - видалити або виправити записи Git у Менеджері облікових даних Windows. Можливо, вам важко знайти його у локалізованій версії Windows, але, на щастя, ви можете запустити його зі старого доброго діалогу Windows+ Rзапустити з control keymgr.dllабо control /name Microsoft.CredentialManager(або rundll32.exe keymgr.dll, KRShowKeyMgrякщо ви віддаєте перевагу класичному вигляду). Або помістити це в пакетний файл для ваших колег: cmdkey /delete:git:http://your.git.server.company.com.

У Microsoft Git Credential Manager це відома проблема, яка може бути вирішена вже на початку 2019 року (тому не затримуйте дихання).


1
Розуміння Windows Credential Manager за допомогою інтерфейсу панелі керування чудово, але стає стомлювальним, коли вам доведеться оновлюватись на всіх машинах. Ця одиночна команда є чудовою, оскільки вона виконує те саме (видаляє існуючі недійсні облікові дані), що змушує git знову запросити облікові дані наступного разу, коли вони потребують їх. У Windows Server 2016 синтаксис команд для видалення облікових даних дещо відрізняється: cmdkey /delete:git:https://your.git.server.company.com
Рудиментарний

/delete{:<TargetName>}є офіційним синтаксисом , але я виявив, що ярлик /del <TargetName>також працює, принаймні в Windows 10 (1803).
Якоб

чудова ідея для псевдоніма! delpw = !cmdkey /delete:git:$(git remote get-url $1). Використання: git delpw origin(ps: / del не працював тут, Win 10 також)
Z. Khullah

6

Просто cdв каталозі, де ви встановили git-poveritive-winstore. Якщо ви не знаєте, де, просто запустіть це в Git Bash:

cat ~/.gitconfig

Він повинен надрукувати щось схоже:

[credential]
    helper = !'C:\\ProgramFile\\GitCredStore\\git-credential-winstore.exe'

У цьому випадку ваш сховище - це C: \ ProgramFile \ GitCredStore. Коли ви знаходитесь у цій папці за допомогою Git Bash або команди Windows, просто введіть:

git-credential-winstore.exe erase
host=github.com
protocol=https

Не забудьте натиснути Enterдвічі після protocol=https.


3

Жодне з поточних рішень для мене не працювало з git bash 2.26.2. Це повинно працювати в будь-якому випадку, якщо ви використовуєте менеджер даних Windows.

Одне питання - це запуск менеджера даних Windows для користувача, який зареєструвався. Наприклад, у моєму випадку я запускаю git bash правою кнопкою миші та запускаю як адміністратор. Тому мої збережені облікові дані знаходяться в диспетчері облікових даних, до якого я не можу отримати доступ із графічним інтерфейсом Windows, якщо не ввійду у Windows як адміністратор.

Щоб виправити це:

  • Відкрийте cmd як адміністратор (або будь-який користувач, з яким ви працюєте з bash)
  • Перейдіть до windows / system32
  • Тип cmdkey /list. Тут повинні з’явитися ваші старі облікові дані з частиною, яка читає ... target: xxx ...
  • Введіть cmdkey /delete:xxx, де xxx - ціль з попереднього рядка

Він повинен підтвердити, що ваші облікові дані було видалено. Наступного разу, коли ви виконаєте будь-яку операцію в git bash, яка вимагає автентифікації, спливаюче вікно запитає ваші облікові дані.

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