Git Windows Отключить пользовательский интерфейс приглашения пароля, но получить пароль из оболочки
В git bash для Windows имя пользователя и/или пароль задаются в отдельном всплывающем окне пользовательского интерфейса, как показано ниже.
![Пользовательская подсказка]()
При нажатии на отмену вы получите приглашение ниже на основе оболочки, где можно ввести одно и то же имя пользователя.
![Приглашение пользователя на основе оболочки]()
Есть ли способ отключить эти подсказки?
Я все же хочу ввести свое имя пользователя и пароль, но вместо приглашения на основе пользовательского интерфейса я хочу ввести его через приглашение на основе оболочки.
Использование предложений из этого не помогает. Как отменить git config --system core.askpass git -gui - askpass
Ответы
Ответ 1
Попробуйте очистить переменную core.askPass
глобально (в вашем конфигурационном файле)
$ git config --global core.askPass ""
или используйте переключатель -c
, чтобы переопределить его только для одной команды
$ git -c core.askPass="" clone <https_url>
см. https://git-scm.com/docs/gitcredentials
Примечание. Отмена установки core.askPass
с помощью git config --global --unset core.askPass
не помогает. Он должен быть установлен в пустую строку, как указано выше.
Ответ 2
Используйте ssh вместо http/https.
Вам нужно будет установить ключи ssh на вашем локальном компьютере, загрузить их на сервер git и заменить форму URL http://
на git://
, и вам больше не понадобится использовать пароли.
Если вы не можете использовать ssh, добавьте это в свою конфигурацию:
[credential "https://example.com"]
username = me
документы здесь.
Ответ 3
Отменить SSH_ASKPASS
.
unset SSH_ASKPASS
Чтобы сделать это автоматически каждый раз, когда вы открываете git bash, вы можете добавить указанную выше строку в конец вашего .bashrc
.
Исследование
Документы gitcredentials, связанные в других ответах, перечисляют количество мест git, чтобы определить, как запросить пароль. Я исследовал каждую по очереди:
env | grep GIT
git config --get core.askPass
env | grep SSH
Последняя команда сказала мне SSH_ASKPASS
:
SSH_ASKPASS=/mingw64/libexec/git-core/git-gui--askpass`.
Это не часть моих точечных файлов, и, похоже, это происходит из дистрибутива Windows git по умолчанию из http://git-scm.com.
Ответ 4
Вы можете попробовать следующую конфигурацию:
git config --global --unset credential.helper
и
git config --system --unset credential.helper
Это помогло мне, когда я использую PortableGit 64-bit 2.12.1.1 в Windows 7.
Ответ 5
В моем случае я использовал git 1.9.5 в течение 3 лет.
И недавно я попытался установить последнюю версию 2.15.0.
В последнем git bash, когда я делаю git pull, он просил меня ввести пароль, тогда как в старой версии git (1.9.5) он не будет просить ничего подобного.
Я искал в google. Наконец мой друг помог мне решить это.
Это потому, что я настроил ключ dsa вместо ключа rsa.
В соответствии с моим пониманием dsa - это формат старого ключа, а rsa - новый ключевой формат.
Чтобы использовать последний git bash со старым ключом dsa, я сделал следующее:
создайте файл с именем "config" (это полное имя) внутри вашей .ssh-папки.
В этом файле укажите нижнюю ноту,
PubkeyAcceptedKeyTypes = + SSH-ДСС
И сохраните его.
Теперь откройте последнюю версию git bash. И сделайте git pull. Он не будет запрашивать пароль и просто вытаскивать коммиты.