Git vs. Windows Credential Manager

Однажды это таки случилось. Я попытался запушить последние изменения в командный репозитарий и получил в ответ:

$ git push origin master
fatal: Authentication failed for'https://scm.srv/scm/repo1/elk.git/'

Веб-интерфейс https://scm.srv меня пускал, вроде бы, без проблем.

Тут я вспомнил, что незадолго до этого менял пароль на учётную запись. Осталось понять, где и как клиент Git хранит данные аутентификации. Гугль заботливо предложил ссылку на Git Credential Storage, в которой явно написано:

If you’re using Windows, you can install a helper called “Git Credential Manager for Windows.” This is similar to the “osxkeychain” helper described above, but uses the Windows Credential Store to control
sensitive information.

В конфиге это выглядит следующим образом:

$ git config --global --list
...
credential.helper=manager
...

В итоге, для смены пароля достаточно поменять пароль, который сохранился в Windows Credential Manager:

P.S. Кстати, git позволяет посмотреть логин/пароль, который хранится в Credential Manager с помощью команды git credential fill. Стоит помнить, что пароль выведется в открытом виде, так что не стоит выводить результат выполнения команды на общедоступный монитор.

$ git credential fill
protocol=https
host=scm.srv

protocol=https
host=scm.srv
path=
username=stas
password=********

Полезные ссылки:
Git Tools – Credential Storage

Leave a Reply

Your email address will not be published. Required fields are marked *