
如果我執行git credential-osxkeychain get
,它只會在應該返回有關鑰匙圈中儲存的憑證的資訊時掛起。有辦法讓這項工作發揮作用嗎?
我使用的是 OS X 10.15.5
$ git credential-osxkeychain
usage: git credential-osxkeychain <get|store|erase>
$ git --version
git version 2.27.0
答案1
所有git credential-*
助手都旨在由 git 本身內部使用並遵循特定的介面。
當使用子命令運行幫助程式時get
,它等待 stdin 上的輸入並期望讀取一系列“key=value”行。例如,host=github.com
。這就是 git 告訴助手的方式哪個需要憑證。
當您直接在終端機中執行程式時,其標準輸入僅連接到鍵盤輸入。第一次按鍵後Enter,工具已經在運行,但正在等待鍵盤輸入,就像cat
或sed
等工具一樣。
第二次按鍵後,程式讀取一個空白行並將其視為「輸入結束」指示符,即不再輸入 key=value 行。此時,它會搜尋鑰匙圈並找到它認為與您「提供的」過濾器相符的條目。
答案2
這對我有用: 透過命令列刪除您的憑證
$ git credential-osxkeychain erase
host=github.com
protocol=https
> [Press Return]
如果成功,則不會列印任何內容。要測試它是否有效,請嘗試從 GitHub.com 複製一個私人儲存庫。如果系統提示您輸入密碼,則表示鑰匙圈條目已被刪除。