14

git clone在一个 Bash 脚本中使用,该脚本采用任何类型的 Git 位置(HTTPS、Git、SSH、文件系统......)并将克隆它。但是这个脚本必须在不与任何用户交互的情况下工作。更准确地说,我希望这个脚本不要暂停凭据:如果该位置需要凭据,而 git 无法自行找到它们,我希望 Git 失败。

我的脚本假设如果您没有设置正确的方法来访问这些位置而无需密码,这不是它的问题。但是,解决方案应该提供一种方法来了解失败的原因(例如,输出带有“Authentication Failed”的错误)。

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

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

我没有找到任何选项git clone来强制不要求提供凭据,最好是在身份验证错误时失败。

4

1 回答 1

17

更新:在 git 版本中 > 2.3

GIT_TERMINAL_PROMPT=0 

对于以前的版本:

这是我强制失败的技巧:

GIT_ASKPASS=/bin/echo git clone ...
于 2014-05-09T11:07:28.897 回答