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

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

$ 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 config --list

将显示证书。Helper = manager(这是在Windows机器上)

要禁用当前本地git文件夹的缓存用户名/密码,只需输入

git config credential.helper ""

这样,git每次都会提示输入密码,忽略“管理器”中保存的内容。

其他回答

如果你的凭据存储在凭据助手中(通常情况下),移除特定主机的密码持久化的可移植方法是调用git credential reject:

一句话: $ echo "url=https://appharbor.com" | git证书拒绝 或交互: $ git凭证拒绝 = https协议 主机= gitlab.com 用户名= me@example.com ↵ (是回车符号),在输入结束时按两次回车键,不要复制/粘贴 wincred似乎无法识别用户名,因此避免在Windows上通过用户名进行过滤

然后,输入git fetch来输入新密码。

https://git-scm.com/docs/git-credential

git config --list

将显示证书。Helper = manager(这是在Windows机器上)

要禁用当前本地git文件夹的缓存用户名/密码,只需输入

git config credential.helper ""

这样,git每次都会提示输入密码,忽略“管理器”中保存的内容。

如果git配置凭据。helper返回Manager - Core(来自跨平台GCM - Git Credential Manager Core项目),你可以:

保持这个设置不变 使用跨平台GCM命令删除您的凭证: printf "Host=github.com\nusername=xxx\nprotocol=https" | \ Git证书管理器核心擦除

检查它是否被带走:

  printf "Host=github.com\nusername=xxx\nprotocol=https" | \
    git credential-manager-core get

(用你的GitHub用户名替换xxx) (将github.com替换为实际的远程Git存储库托管服务器:gitlab.com, bitbucket.com, yourOwnServer.com)

如果您看到提示您的凭据,单击“取消”:之前的凭据已从操作系统底层机密管理器(Windows凭据管理器,Linux libsecret或Mac osxkeychain)中消失)

在下一次git推送时,通过GCM-core凭据助手输入您的凭据作为提示符:您的新凭据将被存储。

当上面提到的方法对你都不起作用时,试试这个方法。

git config credential.helper 'cache --timeout=30'

这将每隔3秒删除缓存,并询问用户名和密码。可以重新运行增加超时值的命令。

如果您使用密钥对进行身份验证,则可以删除或移动您的私有密钥,或者停止密钥代理并尝试。