当需要密码时,强制Git失败,而不是提示输入密码

当需要密码时,强制Git失败,而不是提示输入密码,git,Git,我正在开发一个应用程序,用户可以在其中输入Git存储库,然后将其克隆到本地机器上。在某些情况下(例如键入错误的URL指向Github上不存在的回购),Git客户端将提示用户输入用户名和密码。我不希望出现这种行为——我只希望Git以非零错误状态失败。非交互式错误消息是可以的,我只是想避免密码提示导致应用程序挂起 如何实现这一点?如果不希望git提示任何输入,可以将设置为0 >>> git clone https://github.com/private/private.git

我正在开发一个应用程序,用户可以在其中输入Git存储库,然后将其克隆到本地机器上。在某些情况下(例如键入错误的URL指向Github上不存在的回购),Git客户端将提示用户输入用户名和密码。我不希望出现这种行为——我只希望Git以非零错误状态失败。非交互式错误消息是可以的,我只是想避免密码提示导致应用程序挂起

如何实现这一点?

如果不希望git提示任何输入,可以将设置为
0

>>> git clone https://github.com/private/private.git 
Cloning into 'private'...
Username for 'https://github.com':
>>> GIT_TERMINAL_PROMPT=0 git clone https://github.com/private/private.git
Cloning into 'private'...
fatal: could not read Username for 'https://github.com': terminal prompts disabled
或者,可以将或设置为
true
(或空白脚本)


两种解决方案都有非零退出代码。

false(1)通常用于“什么都不做,然后失败”。不需要空脚本。很有趣。如果没有这样的
true
二进制文件可用,是否有跨平台的替代方案?或者我必须用我的脚本发布这样一个程序吗?@shadowtalker:我相信true(1)和false(1)是POSIX授权的,所以它们已经非常跨平台了。或者至少可以移植到一个可以执行空脚本的shell中:)@shadowtalker我刚刚注意到,这可能是一个更优雅的解决方案。
>>> git clone https://github.com/private/private.git 
Cloning into 'private'...
Username for 'https://github.com':
>>> GIT_ASKPASS=true git clone https://github.com/private/private.git
Cloning into 'private'...
remote: Repository not found.
fatal: Authentication failed for 'https://github.com/private/private.git/'