我正在使用几个存储库,但最近我只在我们的内部存储库中工作,一切都很好。
今天我不得不提交并将代码推到另一个,但我遇到了一些麻烦。
$ 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配置凭据。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凭据助手输入您的凭据作为提示符:您的新凭据将被存储。
实际上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文档,也许你想指定一些不同的东西。