使用Github推送提交时出错:致命错误:无法读取用户名

56

最近我开始在Github上管理我的项目,但是在提交代码时遇到了问题。

首先,我fork了一个仓库。然后我用命令行git clone https://github.com/ ...克隆了该分支,做出了一些修改,并成功提交了(git commit -a)。

之后,我尝试用命令行git push推送代码,但是却收到以下错误提示:

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

你有解决这个问题的想法吗?


2
@Chris:不,这是1.8.5版本中的错误。 - Mr_and_Mrs_D
8个回答

63
我需要做的是:

git remote rm origin
git remote add origin 'git@github.com:username/repo.git'

然后,我就可以推送我的改动了。

2
the_git@link是什么? - Mr_and_Mrs_D
抱歉@Mr_and_Mrs_D,我今天才看到你的评论。我所说的the_git@link是指SSH克隆URL,而不是HTTPS克隆URL。 - Rodrigo Medeiros
5
当您不想使用SSH密钥时该怎么办? - Ricardo
3
你也可以使用以下命令更改远程仓库地址: git remote set-url origin 'git@github.com:username/repo.git'。 - Tobias Oberrauch
@CrisAbrams 这是由于git 1.8.5中的一个错误导致的(请参考此答案)。升级到较新的版本似乎也可以解决这个问题。 - Rodrigo Medeiros
显示剩余2条评论

24

我尝试了以下命令,它对我有效

git push https://<username>:<password>@github.com/<username>/<repository-name>

10
这不是一个好主意,像那样暴露你的密码。 - alxgb

22

我遇到了同样的问题-令我非常恼火的是我不知道为什么(编辑:错误)。我正在使用https进行推送。手动编辑配置对我没有用(或者像另一个答案中建议的那样执行chkdsk)。最终我使用ssh进行了推送-也就是说,替换:

ssh://git@github.com/username/repo.git

https://github.com/USER/REPO.git

随着

git@github.com:USER/REPO.git

生成您的密钥之后,请参考此处

编辑:这是1.8.5版本中的一个错误。请参见报告讨论以获取解决方法。


16
自从1.8.5版本出现了一个bug,如果你不想使用SSH密钥,你可以从这里降级到1.84,或者升级到更高版本,例如1.9.x。

11

2
我已经为那些想要或需要使用比1.8.4更新的Git版本的人创建了一个非官方修复版本(1.8.5.4)。这应该作为一个中间解决方案,直到新的官方版本发布。 - Nevik Rehnel
非常令人失望,如果臭名昭著的最基本用例:git clone... + git add... + git commit + git push 都不能正常工作。上面答案中的任何提示都对我没用,但最终的解决方法是使用git gui,它立即完成了工作。它要求输入用户名和密码,并按预期执行推送操作。这个糟糕的工具浪费了我多少时间啊! - Palo

3
在我的情况下,我将Git升级到1.9版本,这个问题就解决了。
在推送/提交期间,Git Bash会要求输入Github的帐号和密码。

0

我之前使用过 git-credential-winstore。 当我重新安装 Windows 后,出现了那个错误。 我通过在我的 PATH 中再次下载 git-credential-winstore 来解决这个问题。


0

我在使用Visual Studio从GitHub上遇到了同样的问题。我进入了Team Explorer->Manage Connections->Connect a Project,然后选择Github,这使我在Web浏览器中重新进行了身份验证。然后我就能够推送我的更改了。


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