GitHub - 错误:无法读取“https://github.com”的用户名:没有这样的文件或目录

239

当我尝试在 Windows 上使用 Git Bash 拉取代码时,出现了以下问题:

fatal: could not read Username for 'https://github.com': No such file or directory

我已经尝试实施这里提供的被接受的解决方案:

然而问题仍然存在。

在添加/删除源之后,我仍然遇到相同的错误。

能否就此问题提供建议?

谢谢!


2
你配置了用户名吗? git config --global user.name "Your Name Here" - Raul Andres
我已经尝试过了,但它没有引用我的 git 用户名,我认为它是因为我在这里调用的 git 存储库的用户名出现问题了。 - noobie-php
1
简单地重新启动解决了我的问题。 - m_ocean
不要被“找不到文件或目录”所分散注意力,最好的做法是认为错误提示只是表明你需要向命令添加身份验证(因为它是私有存储库等)。例如,通过使用私有访问令牌。 - klaus thorn
33个回答

1

我通过清除无效缓存,然后进行清洁构建来获得答案。

  1. 选择 '文件 > 无效缓存 / 重启',然后单击'无效并重启'按钮。
  2. 选择 构建 > 清理项目,然后选择 构建 > 重新构建项目

当然,那些了解的人会认出来,但你应该提到这只适用于Intellij Idea用户。 - Maicon Mauricio

1
如果在 Dockerfile 中运行 `go mod download` 时遇到此错误,请放心,我也遇到过类似的问题。解决方法是在我的 Dockerfile 中实施以下更改:
RUN go env -w GOPRIVATE="github.company.com"
RUN git config --global url."ssh://git@github.company.com".insteadOf "https://github.company.com"
RUN mkdir -p /root/.ssh && ssh-keyscan github.company.com >> /root/.ssh/known_hosts
RUN --mount=type=secret,id=sshKey,dst=/root/.ssh/id_rsa go mod download

这将私有仓库设置为使用SSH而不是HTTPS,并确保go mod download使用正确的SSH密钥。

0

之前当我没有被授权访问仓库时,我也将SSH公钥添加到了Gitlab。在我能够访问仓库并运行go mod vendor的时候,你遇到的同样的问题也发生了。(可能是因为缓存)

go mod vendor

go: errors parsing go.mod:
/Users/macos/Documents/sample/go.mod:22: git ls-remote -q https://git.aaa.team/core/some_repo.git in /Users/macos/go/pkg/mod/cache/vcs/a94d20a18fd56245f5d0f9f1601688930cad7046e55dd453b82e959b12d78369: exit status 128:
    fatal: could not read Username for 'https://git.aaa.team': terminal prompts disabled

经过一段时间的尝试,我决定删除SSH密钥和终端提示填写用户名和密码。然后一切都很好!


在我的情况下,请不要使用https,而是尝试http。请编辑文件./gitconfig [url "git@git.aaa.team:"] insteadOf = https://git.aaa.team/ - Long Tran

0
这是导致人们出现此错误的简单原因:您正在尝试从一个尚未设置本地Git访问的repo中拉取。对我来说,当我将一个公共repo更改为私有repo时就出现了这个错误。现在对我来说很清楚,公共repo不需要认证,而私有repo需要认证。
希望这可以帮助澄清错误发生的原因以及可能引起该问题的一个潜在触发器。

0

尝试使用正常的Windows shell,如CMD。


0

请仔细检查存储库的URL,如果存储库不存在,Github将提示您登录。

我猜这可能是为了检查您是否有权访问私有存储库。可能是为了使枚举私有存储库更加困难。但这只是猜测。/耸肩


0
这解决了我的问题我跑过
git config --global --unset credential.helper

尝试使用SSH连接而不是HTTPS。为您的GitHub帐户设置SSH身份验证,并在部署脚本中更新存储库URL以使用SSH格式(git@github.com:/.git)。这将消除用户名和密码验证的需要。


0

我在ssh jail(jailkit)中遇到了这个问题,其中/dev/tty不存在。 我使用jk_cp添加了此设备文件,错误消失了。


0
问题:使用SSH身份验证时,Git Pull/Push卡住。
分析:
运行`ssh -vT git@github.com`显示卡住。
(base) ➜  .ssh ssh -vT git@github.com
OpenSSH_7.6p1 Ubuntu-4ubuntu0.5, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to github.com [192.30.255.112] port 81.

运行ssh -vT -p 22 git@github.com可以显示连接成功。
检查/etc/ssh/ssh_config发现连接端口设置为81。

image-20230803191919046

解决方案:
编辑 ~/.ssh/config 文件,并写入以下内容:
Host github.com
    Port 22

感谢您对贡献给Stack Overflow社区的兴趣。这个问题已经有相当多的答案,其中一个答案已经得到社区的广泛验证。您确定您的方法之前没有被提过吗?如果是这样,解释一下您的方法与众不同的地方、在什么情况下您的方法可能更好,以及/或者为什么您认为之前的答案不够满意会很有帮助。您能友善地编辑您的回答并提供一个解释吗? - Jeremy Caney
@JeremyCaney 在审查对这个问题的回应时(可能有些我错过了),我没有注意到有人指出由于错误的端口设置所造成的影响,因此我建议将其作为一个潜在的故障排除方法。 - XiaoBanni

-1
我在向私有的GitLab推送新的提交时遇到了同样的问题。
我在PowerShell中执行了git push,似乎是用"ctrl+c"来停止它。
我的解决方案是:
  • 打开一个新的Git Bash终端
  • 切换到相同的本地仓库目录
  • 然后执行git pullgit push

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接