Git

git clone - 失敗而不是提示輸入憑據

  • February 19, 2021

在自動化工具(Web 前端、CI 系統)中複製 git 儲存庫時,有時 git clone 呼叫會打開詢問使用者名和密碼的提示(例如,在複製不存在的 Github 儲存庫或在缺少 ssh 密鑰的新節點上時) )。

如何讓 git 失敗(最好帶有合理的錯誤消息和退出程式碼),而不是等待伺服器程序為其提供使用者名和密碼?

在 git 版本 2.3 中有一個環境變數GIT_TERMINAL_PROMPT,當設置為0將禁用提示輸入憑據時。

您可以在man git(更新到 git 版本後2.3)或在github 上的這篇博文中獲得有關它的更多資訊。

例子:

  • git clone https://github.com/some/non-existing-repo將提示輸入使用者名和密碼
  • GIT_TERMINAL_PROMPT=0 git clone https://github.com/some/non-existing-repo將失敗而不提示輸入使用者名和密碼

如果您正在使用 ssh 身份驗證,並且在 linux 上,那麼您可以創建一個 ssh 命令替換來禁用它。

創建一個名為“sshnoprompt.sh”的文件:

ssh -oBatchMode=yes $@

使這個文件可執行chmod +x sshnoprompt.sh

然後在啟動 git 時:

GIT_SSH="sshnoprompt.sh" git clone foo@dummyserver:not_a_repo

而且它不允許任何互動式 git 提示或問題——它不應該向使用者詢問任何事情。

引用自:https://serverfault.com/questions/544156