Git 因致命错误而失败 - 无法读取用户名终端提示已禁用

Posted

技术标签:

【中文标题】Git 因致命错误而失败 - 无法读取用户名终端提示已禁用【英文标题】:Git failed with a fatal error - could not read Username terminal prompts disabled 【发布时间】:2021-11-04 13:34:03 【问题描述】:

我的本​​地 git 可能有什么问题? 我能够在 5 分钟之前拉动,突然当我再次尝试拉动时,它要求我输入 user/psw。我这样做了,但它给了我这个错误:

Git failed with a fatal error.
could not read Username for 'https://github.com': terminal prompts disabled

我可以登录 github.com,但在本地它一直在询问我的用户名/密码并给我上述错误。

注意:在桌面使用 github 时一切正常。

【问题讨论】:

【参考方案1】:

您或您正在使用的某些软件已设置:

GIT_TERMINAL_PROMPT=0

或:

GIT_TERMINAL_PROMPT=false

在您的环境中。停止那样做,或者让软件停止那样做。 (另见go get results in 'terminal prompts disabled' error for github private repo和How do I disable credential prompting for git clone in Go?)

或者,设置您的凭据管理器1 以存储或缓存用户名和密码。请注意这一点,尤其是因为其中许多存储密码不安全(例如,以明文形式)。

或者,使用ssh 代替https。虽然 https 身份验证需要 Git 从凭证管理器获取用户名和密码,但 ssh 身份验证不需要。


1Git 本身不进行任何身份验证。相反,它会在其他程序或库上关闭它。要使用 https 身份验证,Git 必须调用库例程,为此它需要用户名和密码;为了获取用户名和密码,Git 调用了一个单独的凭证管理器。有许多凭证管理器,它们都依赖于操作系统和用户,因此您可以选择仅适用于 Mac 的凭证管理器,或仅适用于 Windows 系统的凭证管理器。 Git 还附带了一些简单而笨拙的凭据管理器,它们只是将用户名和密码存储在一个文件或一些临时存储中。

【讨论】:

以上是关于Git 因致命错误而失败 - 无法读取用户名终端提示已禁用的主要内容,如果未能解决你的问题,请参考以下文章

Git 因致命错误而失败。拒绝将不相关的历史与 git push 合并?

Git 存储库克隆错误(终端提示已禁用)

嘿,我正在尝试学习 git,但我遇到了致命错误:无法从远程仓库读取 [重复]

Android Studio - 推送失败:致命:无法从远程存储库读取

Cython prange 因致命 Python 错误而失败:PyThreadState_Get:没有当前线程

git push heroku master 因解析错误而失败 - 哪个文件?