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

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

$ 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'

为了避免凭证缓存…

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


当前回答

为了添加到@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凭据(例如Git:https://).)点击它,更新密码,然后在git bash中执行git pull/push命令,它就不会抛出任何错误消息了。

最终为我解决这个问题的是使用GitHub桌面,进入存储库设置,并从存储库url中删除user:pass@。然后,我尝试从命令行推送,并提示输入登录凭据。我把它们放进去之后,一切都恢复正常了。Visual Studio和命令行都可以工作,当然还有GitHub桌面。

GitHub Desktop->Repository->Repository Settings->Remote选项卡

将主远程存储库(origin)更改为:

https://pork@muffins@github.com/MyProject/MyProject.git

To:

https://github.com/MyProject/MyProject.git

点击“保存”

凭证将被清除。

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

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

转到C:\Users\<current-user> 检查.git-credentials文件 根据您的要求删除或修改内容 重新启动终端

在Windows 10专业版上使用最新版本的Windows git,我遇到了类似的问题,我有两个不同的GitHub帐户和一个Bitbucket帐户,所以VS2017、git扩展和git bash的情况有点混乱。

我首先检查了git是如何处理我的凭据与这个命令(运行git bash与提升命令或你得到错误):

git config --list

我找到了条目凭据管理器,所以我点击开始按钮>键入凭据管理器,然后左键单击凭据管理器黄色安全图标,启动了应用程序。然后我点击Windows凭据选项卡,找到了我当前git帐户的条目,碰巧是Bit-bucket,所以我删除了这个帐户。

但这并没有做到这一点,所以下一步是取消凭据,我从我的笔记本电脑上的存储库目录,其中包含我试图推到远程的GitHub项目。我输入了以下命令:

git config --system --unset credential.helper

然后我做了一个git推送,我被提示输入一个GitHub用户名(我需要的正确的一个),然后相关的密码,一切都被正确推送。

我不确定这是一个多大的问题,大多数人可能工作在一个存储库,但我必须跨几个工作,使用不同的提供商,所以可能会再次遇到这个问题。