我目前在Windows 7上使用最新版本的Git (1.9.0)以及Git凭据助手通过HTTPS连接GitHub。
在设置我的环境时,我告诉git-credentials永久记住了我的用户名和密码。
最近我通过网站更新了我的GitHub密码,现在无法再进行推送/拉取/获取等操作。
我该如何在Windows 7上更新git-credentials助手中的密码?
我目前在Windows 7上使用最新版本的Git (1.9.0)以及Git凭据助手通过HTTPS连接GitHub。
在设置我的环境时,我告诉git-credentials永久记住了我的用户名和密码。
最近我通过网站更新了我的GitHub密码,现在无法再进行推送/拉取/获取等操作。
我该如何在Windows 7上更新git-credentials助手中的密码?
这些答案都无法解决我的Git凭据问题。以下是可行的方法(我正在使用Windows 8.1上的Git 1.9)。
要更新您的凭据,请前往控制面板 → 凭据管理器 → 通用凭据。查找与您的Git帐户相关的凭据,并编辑它们以使用更新后的密码。
请注意,要使用Windows凭据管理器进行Git操作,您需要像以下方式配置凭据助手:
git config --global credential.helper wincred
如果您有多个GitHub账户用于不同的代码仓库,那么您应该配置凭据使用完整的仓库路径(而不仅仅是域名,这是默认设置):
如果您有多个GitHub账户用于不同的代码仓库,那么您应该配置凭据使用完整的仓库路径(而不仅仅是域名,这是默认设置):
git config --global credential.useHttpPath true
git config --list
包含 credential.helper=wincred
,那么这应该是被接受的答案。 - M. F.git:http://yourserver:port/
的 通用凭据
进行 添加
。无论是 Http 还是 Https,重要的是开头的 git:
。请注意,不要更改原意。 - Alberto Chiesa在我第一次尝试Git fetch更改密码后,系统告诉我我的用户名/密码组合无效。这是正确的,因为Git凭据助手缓存了我的旧值。
然而,在重新启动终端/命令提示符后,我尝试了另一个git fetch,这时凭证助手提示我输入GitHub用户名和密码。
我猜测初始失败的Git fetch请求和重新启动终端/命令提示符的组合解决了我的问题。
我希望这个答案能帮助未来处于类似情况中的任何人!
git fetch
,它也适用于第二次git clone
。 - navigator_如果您是Windows用户,您可以在凭据管理器中删除或更新凭据。
在Windows 10中,请按照以下路径进行操作:
控制面板 → 所有控制面板项目 → 凭据管理器
或者在开始菜单的“搜索Windows”部分中搜索“凭据管理器”。
然后从凭据管理器中选择“Windows凭据”。
凭据管理器会显示许多项目,包括您的Outlook和GitHub存储库,位于“通用凭据”下面
您可以点击Git右侧的下拉箭头,它将显示编辑和删除选项。 如果您删除,下次提取或拉取时将弹出凭据提示框。 或者您可以直接在此处编辑凭据。
control.exe
才能查看此控件。 - AnrDaemon使用命令行解决方案适用于Windows、Linux和MacOS
如果您已在GitHub服务器上更新了密码,第一次尝试执行git fetch/pull/push
命令时,它会生成身份验证失败消息。
再次执行相同的git fetch/pull/push
命令,它会提示输入凭据(用户名和密码)。输入GitHub服务器的用户名和新更新的密码,登录将成功。
即使我也遇到了这个问题,我执行了以上步骤,问题就解决了!
首先,使用Git命令git --version
查找您正在使用的版本。如果您的版本比1.7.10更新,则只需使用此命令:
git config --global credential.helper wincred
执行 git fetch
命令后,会提示更新密码。
现在在 Git 中不会多次提示输入密码。
--global
?这样做岂不是会被要求重新设置所有仓库而不只是受影响的那个吗? - Thomas Weller我觉得这里的答案已经过时了。对于我来说,使用Git v2.15.0,像这样发出git credential reject
的命令就可以完成任务:
$ git credential reject
protocol=https
host=github.com
<Empty line here>
然后设置新的用户名和密码:
$ git credential fill
protocol=https
host=github.com
<empty line here>
在此之后,如果凭据现在可以在所需的目标主机上使用,我们应该使用 git credential approve
- 如Git凭证的典型用法(步骤4)中所述- 告诉凭证助手将凭证标记为已批准并在将来的连接中重复使用它们。
git credential approve
时,再次输入与其他调用 git credential
相同的2行内容:protocol=https
,然后是 host=github.com
。 - David Burson就我所知,我遇到了同样的问题(我的老板也一样,所以问题变得更加严重)。
即时解决方法是删除或修复在Windows凭据管理器中的Git条目。您可能很难在本地化的Windows版本中找到它,但幸运的是,您可以从好老的 Windows + R 运行对话框启动它,使用 control keymgr.dll
或 control /name Microsoft.CredentialManager
(或者如果您喜欢经典外观,则使用rundll32.exe keymgr.dll, KRShowKeyMgr
)。或者为您的同事将其放入批处理文件中: cmdkey /delete:git:http://your.git.server.company.com
。
在 Microsoft 的 Git 凭证管理器中,这是已知问题,可能会在2019年初得到解决(所以不要抱太大希望)。
更新(2020年9月30日):GCM4W似乎被放弃了(最后一次发布已经超过一年了,自那时以来只有一个提交到主分支的命名,我不是在开玩笑,“重建可扩展版本的GCM标志”)。但别担心,随着微软现在进入核心领域,出现了一个闪亮的新项目,叫做GCM Core,它似乎能够正确地处理密码更改。它可以作为独立的安装(应该会自动激活,否则使用git config --system credential.helper manager-core
激活),但也包含在当前的Git for Windows 2.28.0中。有关更多信息,请参见此博客文章。
cmdkey /delete:git:https://your.git.server.company.com
- Rudimentarydelpw = !cmdkey /delete:git:$(git remote get-url $1)
。用法:git delpw origin
(注:在这里/del无效,Win 10也是如此)。 - Bernardo Dal Corno只需在安装git-credential-winstore的目录中运行cd
命令。如果您不知道在哪里安装,请在Git Bash中运行以下命令:
cat ~/.gitconfig
[credential]
helper = !'C:\\ProgramFile\\GitCredStore\\git-credential-winstore.exe'
git-credential-winstore.exe erase
host=github.com
protocol=https
在protocol=https
后面按Enter键两次。
对于我的情况,使用git bash 2.26.2时,当前的解决方案都没用。如果您正在使用Windows凭据管理器,则此解决方法应该适用于任何情况。
问题之一是Windows凭据管理器仅运行选定的用户。例如,在我的情况下,我使用右键单击“以管理员身份运行”来运行git bash 。因此,我的存储凭据位于凭据管理器中,如果我不以管理员身份登录到Windows,则无法使用Windows GUI访问它们。
要解决此问题:
cmdkey /list
。 在此处,您的旧凭证应该出现在这里,并且具有一个部分读取...target:xxx...cmdkey /delete:xxx
, 其中 xxx 是上一行中的目标名称系统将确认您已删除凭据。 下次您在git bash中执行需要认证的任何操作时,将弹出一个窗口询问您的凭据。