如果我执行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
,它等待标准输入的输入并期望读取一系列“key=value”行。例如,host=github.com
。这是 git 告诉助手的方式哪个需要凭证。
当您直接在终端中运行程序时,其 stdin 仅连接到键盘输入。第一次Enter按键后,该工具已运行但正在等待键盘输入,就像cat
或sed
等工具一样。
第二次按键后,程序读一个空行并将其视为“输入结束”指示符,即不再输入 key=value 行。此时,它会搜索钥匙串并找到它认为与您“提供的”过滤器匹配的任何条目。
答案2
这对我有用: 通过命令行删除您的凭据
$ git credential-osxkeychain erase
host=github.com
protocol=https
> [Press Return]
如果成功,则不会打印任何内容。要测试它是否有效,请尝试从 GitHub.com 克隆一个私有存储库。如果系统提示您输入密码,则表示钥匙串条目已被删除。