如何强制Git NOT提示输入凭据

vaa*_*aab 10 git credentials git-clone non-interactive

我正在使用git cloneBash脚本,它接受任何类型的Git位置(HTTPS,Git,SSH,文件系统......)并将克隆它.但是此脚本必须在不与任何用户交互的情况下工作 更确切地说,我希望这个脚本不要暂停凭据:如果位置需要凭据,并且git无法单独找到它们,我希望Git失败.

我的脚本假设如果你没有设置正确的方法来访问没有密码的这些位置,那么这不是它的问题.但是,解决方案应该让方法知道故障是什么(例如,输出错误"Authentication Failed").

我需要这种行为只是因为它是一个脚本,它是非交互式运行的(cron作业,VM构建......等等).我需要它失败,不要冻结我的脚本等待我无法提供它的信息(并且不要).

因此,在我目前的担忧中,我要求git clone失败而不是询问凭据.

我没有找到任何git clone强制不要求凭证的选项,最好是在验证错误时失败.

vaa*_*aab 14

更新:在git版本> 2.3:

GIT_TERMINAL_PROMPT=0 
Run Code Online (Sandbox Code Playgroud)

对于以前的版本:

这是强制失败的诀窍:

GIT_ASKPASS=/bin/echo git clone ...
Run Code Online (Sandbox Code Playgroud)

  • 人们可能还需要`GIT_SSH_COMMAND ="ssh -oBatchMode = yes"以防止在通过SSH管道进行交互时出现提示. (4认同)