当我试图在Windows上使用git Bash拉代码时,我有以下问题:

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

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

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

然而,问题仍然存在。

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

你能给我一些建议吗?

谢谢!


当前回答

如果你想继续使用https代替ssh,出于安全考虑,不要输入你的用户名和密码。

你也可以试试Github OAuth令牌,然后你就可以了 Git配置remote.origin.url 'https://{token}@github.com/{username}/{project}.git' 或 Git远程添加原点“https://{token}@github.com/{username}/{project}.git”

这对我很管用!

其他回答

我也面临着同样的问题。当我使用HTTPS URL克隆一个repo,然后尝试推送更改(在Linux/Mac上使用Shell或在Windows上使用Git Bash)时,出现了这个问题:

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

但是,当我使用SSH URL克隆时,这个问题没有发生:

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

如果你已经使用HTTPS克隆了repo,并且不想重做所有事情,你可以使用set-url将原始URL更改为SSH URL:

git remote set-url origin git@github.com:{username}/{repo}.git

注意:我有SSH密钥添加到我的GitHub帐户。如果没有设置SSH密钥,这种方法也不能工作。

我在这里找到了答案:

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

[url "git@github.com:"]
 insteadOf = https://github.com/

虽然它解决的问题不同,但错误代码是一样的…

如果你想继续使用https代替ssh,出于安全考虑,不要输入你的用户名和密码。

你也可以试试Github OAuth令牌,然后你就可以了 Git配置remote.origin.url 'https://{token}@github.com/{username}/{project}.git' 或 Git远程添加原点“https://{token}@github.com/{username}/{project}.git”

这对我很管用!

对于我来说,上面建议的没有任何工作,我使用了Jenkins Shell Script中的git pull命令,显然它需要错误的用户名。我花了很长时间才找到一种不切换到SSH的方法来修复它。

在你的用户文件夹中创建。gitconfig文件(如果你还没有的话),并把你的凭证放在以下格式:https://user:pass@example.com,更多信息。在你的.gitconfig文件链接到这些凭证之后,在我的情况下,它是:

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

现在git无论如何都会使用这些凭证。我希望它能帮助别人,就像它帮助了我一样。

对于那些在Jenkins管道中得到这个错误的人,可以使用SSH代理插件来修复。然后像这样包装你的git命令:

sshagent(['my-ssh-key']) {
    git remote set-url origin git@github.com:username/reponame.git
    sh 'git push origin branch_name'
}