有没有办法防止Git在Windows上打开密码提示框?

10
在使用git bash推送远程仓库时,需要输入我的密码。这不是问题。
问题是我习惯于在git控制台中键入密码,但是我从Linux切换到Windows后,我的密码被要求在提示框中输入,而不是在控制台中。

Prompt box for password

我觉得这样不太方便:我需要等待一秒钟才能看到它,有时还会失去焦点。
奇怪的是,如果我关闭对话框,那么密码就会在git控制台中被要求。这正是我所期望的。

What I am looking for

你知道如何防止弹出框,直接在控制台中输入密码吗?是否有一些需要修改的git选项?


1
如果你注意到了,控制台中的错误信息显示为“error: unable to read askpass response from C:\Program Files\Git\mingw64\libexec\git-core\git-gui--askpass”,这个 UI 添加似乎是导致对话框提示的原因,而不是 git 本身。 - Krease
@Chris 谢谢,我注意到了,但是我不知道该怎么处理。我正在查看 git-config 选项,看是否有设置默认行为的方法。 - Delgan
1
这与git本身无关,但安装明显存在问题。你是如何安装的?我使用Chocolatey、Github和TortoiseGit安装了Git,但没有遇到这样的问题。你尝试过从命令行进行推送吗?你可以通过使用像Git自己的wincredMicrosoft的Git凭据管理器这样的凭据助手来完全避免这个问题。 - Panagiotis Kanavos
@PanagiotisKanavos 从命令行运行时,它可以在没有提示框的情况下工作。我刚刚进行了全新安装:我从官方网站下载了git,并按照所需选项进行了检查p1p2p3(我尝试了两种),p4p5 - Delgan
3个回答

12

这似乎与 core.askPass 选项有关,该选项在 git-config 中有说明:

core.askPass
一些要求交互式输入密码的命令(例如svn和http接口)可以通过这个变量设置一个外部程序来处理。该值可以被GIT_ASKPASS环境变量覆盖。如果没有设置,则回退到SSH_ASKPASS环境变量的值或者简单密码提示。外部程序将会得到一个适当的提示作为命令行参数,并将密码写入其标准输出。


我的默认配置不包含此选项,因此我猜它会回退到“简单密码提示”。

要覆盖此行为,我只需将该选项设置为空字符串即可:

git config --global core.askPass ''

然后,从控制台要求输入密码,而不提示任何内容。


0
如果你正在将代码推送到通常使用的代码库,请使用你的公钥进行身份验证,而不是使用密码。这样做,你就不必在控制台或提示中一遍又一遍地输入密码了。

谢谢您的建议,但实际上这并没有回答我的问题,我感觉这只是绕过了问题而没有真正解决它。 - Delgan

0

在2022年(6年后),您可以安装最新的GCM 2.0.692(Git凭据管理器)。

并使用以下命令:

  • git config --global credential.helper manager-core
  • git config --global credential.guiPrompt false
  • 或:SET GCM_GUI_PROMPT=0

这将禁用任何提示,只留下终端提示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接