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

问题描述 投票:56回答:14

当我尝试在Windows上使用GIT Bash来提取代码时,我遇到以下问题

我已经尝试实现此处提供的已接受解决方案:

但问题仍然存在。添加/删除原点后,我仍然得到相同的错误。

fatal: could not read Username for 'https://github.com': No such file or directory
git github git-pull git-bash
14个回答
46
投票

按照以下步骤设置SSH密钥:https://help.github.com/articles/generating-ssh-keys

要么

git remote add origin https://{username}:{password}@github.com/{username}/project.git

0
投票

像这样替换您的远程URL:

git remote set-url origin https://<username>@github.com/<username>/<repo>.git

0
投票

尝试使用普通的Windows shell,如CMD。


0
投票

对我来说,没有任何工作从上面建议,我使用jenkins shell脚本的git pull,显然它需要错误的用户名。我花了很多年才找到了解决问题的方法,而没有切换到SSH。

在用户的文件夹中创建.gitconfig文件(如果您还没有),并按以下格式输入您的凭据:https://user:[email protected],更多info。在.gitconfig文件链接到这些凭据后,在我的情况下它是:

[credential] helper = store --file /Users/admin/.git-credentials

现在git将始终使用这些凭据,无论如何。我希望它会帮助某人,就像它帮助了我一样。


-1
投票

尝试使用CreativeMagic解决方案时,凭证问题得到确认:

提示>>>'https://github.com'的用户名

所以,我改变了我的原始网址

git remote set-url --add origin http://github.com/user/repo

git push --set-upstream origin master

10
投票

如果您收到此错误:

致命:无法读取'https://github.com'的用户名:没有错误

然后你需要将你的Git更新为版本2.16或更高版本。


9
投票

我遇到了同样的问题。当我使用HTTPS URL克隆然后尝试使用Git Bash在Windows上使用以下命令推送更改时,会发生此问题:

git clone https://github.com/{username}/{repo}.git

但是,当我使用SSH URL进行克隆时,没有出现此问题:

git clone [email protected]:{username}/{repo}.git

3
投票

简答:

git init
git add README.md
git commit -m "first commit"


git remote add origin https://github.com/{USER_NAME}/{REPOSITORY_NAME}.git
git push --set-upstream origin master

如果它不是新的存储库,请忽略前三行。

更长的描述:

只是遇到了同样的问题,因为上述答案中没有一个帮助了我,我决定发布这个对我有用的解决方案。

几点说明:

  • SSH密钥已生成
  • SSH密钥已添加到github,仍然有此错误。
  • 我在GitHub上为这个项目创建了一个新的存储库,并按照描述的步骤进行操作

作为命令行工具,我使用GitShell(对于Windows,我在Mac上使用Terminal.app)。 GitShell是官方的GitHub工具,可以从https://windows.github.com/下载

希望这有助于任何有同样问题的人。


2
投票

尝试克隆无效的HTTP URL时也会发生此错误。例如,这是我在尝试克隆一个关闭了几个字符的GitHub URL时遇到的错误:

$ git clone -v http://github.com/username/repo-name.git
Cloning into 'repo-name'...
Username for 'https://github.com': 
Password for 'https://github.com': 
remote: Repository not found.
fatal: Authentication failed for 'https://github.com/username/repo-name.git/'

它实际上发生在Emacs内部,所以Emacs中的错误看起来像这样:

fatal: could not read Username for ’https://github.com’: No such device or address

因此,不是一个有用的错误,说该URL没有这样的回购,它给了我这个,让我进行了一次疯狂的追逐,直到我终于意识到这个URL是不正确的。

这是使用git版本2.7.4。

我在这里张贴这个,因为它发生在我一个月前和刚刚再次发生在我身上,让我再次进行同样的疯狂追逐。 > :(


1
投票

这是您在系统凭据缓存中存储的凭据的问题。您可能将配置变量'credential.helper'设置为wincred或winstore,但无法清除它。如果启动“控制面板”并启动Credential Manager小程序,则在标记为“git:https://github.com”的通用凭据部分中查找项目。如果删除这些,则下次将重新创建,但凭据帮助程序实用程序将要求您提供新凭据。


1
投票

我通过安装更新​​版本的Git来解决这个问题。我安装的版本是https://git-scm.com的2.10.2。请看这里的最后一篇文章:https://www.bountysource.com/issues/31602800-git-fails-to-authenticate-access-to-private-repository-over-https

使用较新的Git Bash,弹出凭证管理器窗口,您可以输入您的用户名和密码,它可以正常工作!


1
投票

我找到了答案here

编辑~/.gitconfig并添加以下内容:

[url "[email protected]:"]
 insteadOf = https://gitlab.com/

虽然它解决了不同的问题,但错误代码是相同的......


0
投票

如果您想继续使用https而不是ssh,并出于安全原因避免输入您的用户名和密码。

你也可以尝试Github OAuth token,然后你可以做git config remote.origin.url 'https://{token}@github.com/{username}/{project}.git'git remote add origin 'https://{token}@github.com/{username}/{project}.git'

这适合我!

© www.soinside.com 2019 - 2024. All rights reserved.