我正在使用几个存储库,但最近我只在我们的内部存储库中工作,一切都很好。

今天我不得不提交并将代码推到另一个,但我遇到了一些麻烦。

$ git push appharbor master
error: The requested URL returned error: 403 while accessing https://gavekortet@appharbor.com/mitivo.git/info/refs?service=git-receive-pack
fatal: HTTP request failed

没有什么我能做的,这将再次带来密码输入。

我如何重置系统上的凭据,以便Git询问我该存储库的密码?

我试过:

Git配置——global——unset core.askpass

以便取消设置密码

Git配置凭证。Helper '缓存超时=1'

为了避免凭证缓存…

似乎什么都不管用;谁有更好的主意?


当前回答

如果你想让git忘记旧保存的凭证并重新输入用户名和密码,你可以使用下面的命令来完成:

git credential-cache exit

运行以上命令后,如果您尝试推送任何东西,它将提供输入用户名和密码的选项。

其他回答

在我的情况下,我找不到保存在Windows凭证管理器(Windows 7)中的凭据。

我可以通过执行重置我的凭证

git config --global credential.helper wincred

老实说,这是孤注一掷,看看它是否会抹掉我的证书,而且它真的起作用了。

在我的例子中,Git使用Windows存储凭据。

你所要做的就是删除存储在Windows帐户中的凭据:

实际上useHttpPath是一个git配置,它应该适用于所有gcm。纠正。

原题摘要

在Windows上使用git 在GitHub上开发多个存储库 用于另一个GitHub存储库的错误凭据

虽然标题说“删除凭据”,但描述让我假设你可能在GitHub上有多个帐户,例如用于与工作相关的或私人项目。(至少那期杂志让我找到了这个话题。) 如果是这样,继续读下去,否则,忽略这个答案,但它在某些时候可能会派上用场。

原因

Git凭据管理器(简称GCM),就像微软的GCM一样,默认情况下为每个主机存储凭据。 这可以通过检查Windows凭据管理器来验证(参见关于如何在英语、法语和德语Windows版本上访问它的其他答案)。 因此,在同一主机上使用多个帐户(这里是github.com)在默认情况下是不可能的。

2020年10月,Windows版GCM已弃用,并被GCM Core所取代。这里的信息仍然适用于新的GCM,它甚至应该使用GCM为Windows存储的凭证。

解决方案

配置git以包含存储库的完整路径,作为每个凭据条目的附加信息。在Windows的GCM中也有文档。 我个人更喜欢包含HTTP(S)[存储库]路径,以便能够为每个存储库使用单独的帐户。

对于所有可能的主机:

git config --global credential.useHttpPath true

仅适用于github.com:

git config --global credential.github.com.useHttpPath true

看看GCM和git文档,也许你想指定一些不同的东西。

至少在Windows上,git remote show [remote-name]可以工作。

git remote show origin

尝试使用下面的命令。

git credential-manager

在这里,您可以获得各种选项来管理您的凭证(检查下面的屏幕)。

或者你甚至可以直接尝试这个命令:

git credential-manager uninstall

这将在每次服务器交互请求时再次提示输入密码。