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

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

$ 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帐户时,将出现此错误。

如果你使用的是macOS,那么你可以删除github.com保存的凭据。

请按照以下步骤删除github.com凭据。

开放钥匙串访问 找到github 选择github.com并右键单击它 删除“github.com” 再次尝试推或拉git,它将要求凭据。 为存储库帐户输入有效凭据。 完成

其他回答

我找到了适合我的方法。当我给OP写注释时,我没有检查系统配置文件:

git config --system -l

显示了一个

credential.helper=!github --credentials

线。我用

git config --system --unset credential.helper

现在这些证书都被遗忘了。

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

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

当做一个'git拉'时,有同样的错误,这就是我如何修复它。

将repo更改为HTTPS 执行命令git config——system——unset credentials .helper 执行命令git config——system——add credential。辅助经理 测试命令git拉 在弹出的登录窗口中输入凭证。 Git拉取成功。

为了添加到@ericbn的https://stackoverflow.com/a/41111629/579827,我在一个脚本中嵌入了一些示例命令,以便在密码更新时更新它们。它可能不是可用的,因为它是非常具体的,但它显示了cmdkey.exe的实际使用。

机场当局:这是在cygwin机场运行的shell程式码 机场当局说:“这是有效的,因为我使用私人git回购系统,所有的验证都使用相同的密码(你可能不想重复使用相同的凭据,但你可以重复使用这个样例/列表命令来提取已注册凭据的列表)

entries=`cmdkey.exe /list: | grep git | sed -r -e 's/^[^:]+:\s*(.*)$/\1/gm'`
for entry in ${entries}
do
    cmdkey.exe "/delete:${entry}"
    cmdkey.exe "/generic:${entry}" "/user:${GIT_USERNAME}" "/pass:${GIT_PASSWORD}"
done

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

git remote show origin