Git credential helper - обновить пароль


198

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

При настройке среды я сказал git-credentials, чтобы я всегда запомнил свое имя пользователя и пароль.

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

Как мне обновить пароль на помощнике git-credentials в Windows 7?


6
Просто используйте «git config --global credential.helper wincred» и введите ID пользователя и пароль; тогда это будет сохранено для вас, в следующий раз, когда вы измените свой пароль, повторите команду выше.
Акшай

@AkshayLokur это правильный ответ.
Равималля

Если ничего не помогает, и вы используете TortoiseGit, вы можете попробовать выполнить действие через него. Например, при извлечении или извлечении с использованием Tortoise запрашивается пароль, который затем можно обновить. Кажется, это перезаписывает кеш Git Bash, и вы можете использовать bash еще раз.
Пол Ф. Вуд

Ответы:


280

Ни один из этих ответов не работал на мою проблему с учетными данными 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:
А. Кьеза

101

При первой попытке получить Git после смены пароля мне сказали, что моя комбинация имя пользователя / пароль неверна. Это было правильно, так как помощник git-credential кэшировал мои старые значения.

Однако после перезапуска моего терминала / командной строки я попытался выполнить еще одну попытку git fetch, и на этот раз помощник по учетным данным предложил мне ввести имя пользователя и пароль GitHub.

Я подозреваю, что первоначальный сбойный запрос Git в сочетании с перезапуском моего терминала / командной строки решил эту проблему для меня.

Я надеюсь, что этот ответ поможет кому-нибудь еще в подобной ситуации в будущем!


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

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

перезапуск консоли / приложения заставил работать "wincred" для меня. (Мне пришлось перезагрузить консоль и «Атом», и все
заработало

3
Ввод любой команды git, требующей учетных данных во второй раз, кажется, делает это, не только git fetch, он также работал на секунду git clone.
navigator_

Большое спасибо! Каждый раз, когда я изменяю свой пароль домена, я должен помнить, как обновить свои учетные данные. Получите Git - это сработало для меня!
Александр Братцев

74

Решение с использованием командной строки для Windows, Linux и MacOS

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

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

Даже у меня была эта проблема, и я выполнил вышеописанные шаги и сделал !!


@ Винсент: в чем проблема, которую вы получаете ??
Фарук

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

1
@RichMeister: Со второго раза он попросит имя пользователя / пароль. Просто укажите свое имя пользователя / новый_пароль.
Фарук

3
У меня работал на MacOS с кэшированными учетными данными после смены пароля. В первый раз получите «Ошибка аутентификации для ...». Попробовал еще раз и
Кевин Хук

1
Это лучший / самый простой ответ
Райан Бокен

74

Если вы являетесь пользователем Windows, вы можете удалить или обновить свои учетные данные в диспетчере учетных данных.

В Windows 10 перейдите по следующему пути:

Панель управленияВсе элементы панели управленияДиспетчер учетных данных

Или выполните поиск «Диспетчер учетных данных» в разделе «Поиск Windows» в меню «Пуск».

Затем в диспетчере учетных данных выберите «Учетные данные Windows».

Диспетчер учетных данных покажет многие элементы, включая ваш внешний вид и репозиторий GitHub в разделе «Общие учетные данные»

Вы нажимаете стрелку выпадающего меню на правой стороне вашего Git: и там будут показаны опции для редактирования и удаления. Если вы удалите, всплывающее окно с учетными данными появится в следующий раз, когда вы получите или извлечете. Или вы можете напрямую редактировать учетные данные там.


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

Примечание: этот элемент управления НЕ ДОСТУПЕН ЧЕРЕЗ METRO UI «ПАНЕЛЬ УПРАВЛЕНИЯ»! Вы должны запустить control.exeвручную, чтобы увидеть этот элемент управления.
AnrDaemon

Это очень помогло! Я даже не знал, что этот инструмент существует.
челюсть

35

Сначала найдите версию, которую вы используете с командой Git git --version. Если у вас более новая версия, чем 1.7.10, просто используйте эту команду:

git config --global credential.helper wincred

Затем выполните git fetch, затем он запрашивает обновление пароля.

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


7
Это не отвечает на вопрос
disclosr

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часть как есть, он автоматически генерировал старый неправильный пароль; Я должен был установить новый вручную с этой командой, чтобы он работал; в любом случае, спасибо, этот ответ помог мне с этой проблемой!
Эмерсон Кардосо

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

1
после fill, мы не должны использовать approve?
З. Хулла

На моей машине git credential rejectникогда не заканчивает
Томас Веллер

@ThomasWeller Вы должны нажать Enter, чтобы оставить там пустую строку, затем она завершится.
Атавио

19

FWIW, я наткнулся на эту же проблему (и мой босс тоже, так что это стало более интенсивным).

Мгновенное решение заключается в удалении или исправлении записей Git в диспетчере учетных данных Windows. Вам может быть трудно найти его в вашей локализованной версии Windows, но, к счастью, вы можете запустить его из старого доброго диалога Windows+ Rrun с помощью 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 с помощью пользовательского интерфейса панели управления - это здорово, но становится утомительным, когда приходится обновляться на всех машинах. Эта единственная команда хороша, поскольку она выполняет то же самое (удаляет существующие недействительные учетные данные), что заставляет 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-credential-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.