Есть ли способ запретить git открывать окно запроса пароля в Windows?

При отправке удаленного хранилища с помощью git bash мой пароль требуется и спрашивается. Это не является проблемой.

Проблема в том, что я использовал просто ввести свой пароль в консоль git, но затем я переключился с Linux на Windows, и мой пароль спрашивается в окне приглашения вместо консоли.

Поле для ввода пароля

Я нахожу это гораздо менее удобным: мне нужно подождать одну секунду, пока оно появится, и иногда я теряю фокус.

Странно то, что если я закрываю диалоговое окно, то пароль спрашивается из консоли git. Это то, что я ищу.

Что я ищу

Знаете ли вы, как я могу предотвратить появление окна с предложением и просто ввести пароль в консоль, пожалуйста? Есть ли какая-нибудь опция git, которую я должен изменить?

3 ответа

Решение

Похоже, это связано с core.askPass опция git-config.

В документации сказано:

core.askPass
Некоторые команды (например, интерфейсы svn и http), которые в интерактивном режиме запрашивают пароль, могут получить указание использовать внешнюю программу, заданную через значение этой переменной. Может быть переопределено переменной среды GIT_ASKPASS. Если не установлено, вернитесь к значению переменной среды SSH_ASKPASS или, в случае неудачи, к простой подсказке пароля. Внешняя программа должна получить подходящую подсказку в качестве аргумента командной строки и записать пароль в свой STDOUT.


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

Чтобы переопределить это поведение, мне просто нужно было установить параметр на пустую строку:

git config --global core.askPass ''

Затем пароль запрашивается с консоли, ничего не запрашивая.

В 2022 году (6 лет спустя) вы сможете установить последнюю версию GCM 2.0.692 (Git Credential Manager).
И используйте его с:

  • git config --global credential.helper manager-core
  • git config --global credential.guiPrompt false
  • или же: SET GCM_GUI_PROMPT=0

Это отключит любую подсказку и оставит пользователю только подсказку терминала.

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

Другие вопросы по тегам