当我尝试在Windows上使用GIT Bash来提取代码时,我遇到以下问题
我已经尝试实现此处提供的已接受解决方案:
但问题仍然存在。添加/删除原点后,我仍然得到相同的错误。
fatal: could not read Username for 'https://github.com': No such file or directory
按照以下步骤设置SSH密钥:https://help.github.com/articles/generating-ssh-keys
要么
git remote add origin https://{username}:{password}@github.com/{username}/project.git
像这样替换您的远程URL:
git remote set-url origin https://<username>@github.com/<username>/<repo>.git
尝试使用普通的Windows shell,如CMD。
对我来说,没有任何工作从上面建议,我使用jenkins shell脚本的git pull
,显然它需要错误的用户名。我花了很多年才找到了解决问题的方法,而没有切换到SSH。
在用户的文件夹中创建.gitconfig文件(如果您还没有),并按以下格式输入您的凭据:https://user:[email protected]
,更多info。在.gitconfig文件链接到这些凭据后,在我的情况下它是:
[credential]
helper = store --file /Users/admin/.git-credentials
现在git将始终使用这些凭据,无论如何。我希望它会帮助某人,就像它帮助了我一样。
尝试使用CreativeMagic解决方案时,凭证问题得到确认:
提示>>>'https://github.com'的用户名
所以,我改变了我的原始网址
git remote set-url --add origin http://github.com/user/repo
和
git push --set-upstream origin master
我遇到了同样的问题。当我使用HTTPS URL克隆然后尝试使用Git Bash在Windows上使用以下命令推送更改时,会发生此问题:
git clone https://github.com/{username}/{repo}.git
但是,当我使用SSH URL进行克隆时,没有出现此问题:
git clone [email protected]:{username}/{repo}.git
简答:
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
如果它不是新的存储库,请忽略前三行。
更长的描述:
只是遇到了同样的问题,因为上述答案中没有一个帮助了我,我决定发布这个对我有用的解决方案。
几点说明:
作为命令行工具,我使用GitShell(对于Windows,我在Mac上使用Terminal.app)。 GitShell是官方的GitHub工具,可以从https://windows.github.com/下载
希望这有助于任何有同样问题的人。
尝试克隆无效的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。
我在这里张贴这个,因为它发生在我一个月前和刚刚再次发生在我身上,让我再次进行同样的疯狂追逐。 > :(
这是您在系统凭据缓存中存储的凭据的问题。您可能将配置变量'credential.helper'设置为wincred或winstore,但无法清除它。如果启动“控制面板”并启动Credential Manager小程序,则在标记为“git:https://github.com”的通用凭据部分中查找项目。如果删除这些,则下次将重新创建,但凭据帮助程序实用程序将要求您提供新凭据。
我通过安装更新版本的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,弹出凭证管理器窗口,您可以输入您的用户名和密码,它可以正常工作!
我找到了答案here:
编辑~/.gitconfig
并添加以下内容:
[url "[email protected]:"]
insteadOf = https://gitlab.com/
虽然它解决了不同的问题,但错误代码是相同的......
如果您想继续使用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'
这适合我!