[英]Git credential helper - update password
我目前在 HTTPS 上使用 GitHub,并在 Windows 7 上安装了最新版本的 Git (1.9.0) 以及 Git 凭证助手。
在设置我的环境时,我告诉 git-credentials 永久记住我的用户名和密码。
我最近通过网站更新了我的 GitHub 密码,现在我无法再进行推送/拉取/获取等操作。
我将如何 go 关于在 Windows 7 上更新我的 git-credentials helper 密码?
这些答案最终都没有解决我的 Git 凭证问题。 如果有人需要它,这确实有效(我在 Windows 8.1 上使用 Git 1.9)。
要更新您的凭证,请转至控制面板→凭证管理器→通用凭证。 找到与您的 Git 帐户相关的凭据并编辑它们以使用更新后的密码。
请注意,要使用适用于 Git 的 Windows 凭据管理器,您需要像这样配置凭据助手:
git config --global credential.helper wincred
如果您有多个 GitHub 帐户用于不同的存储库,那么您应该配置凭据以使用完整的存储库路径(而不仅仅是域,这是默认值):
git config --global credential.useHttpPath true
在我更改密码后第一次尝试 Git fetch 时,我被告知我的用户名/密码组合无效。 这是正确的,因为 git-credential 助手缓存了我的旧值。
但是,我在重新启动终端/命令提示符后尝试了另一个git fetch ,这次凭证助手提示我输入我的 GitHub 用户名和密码。
我怀疑最初失败的 Git fetch 请求结合重新启动我的终端/命令提示符为我解决了这个问题。
我希望这个答案可以帮助将来处于类似位置的其他人!
如果您是 Windows 用户,则可以在 Credential Manager 中删除或更新您的凭据。
在 Windows 10 中,转到以下路径:
控制面板→所有控制面板项目→凭证管理器
或者在“开始”菜单的“搜索窗口”部分中搜索“凭据管理器”。
然后从凭据管理器中,选择“Windows 凭据”。
凭据管理器将在“通用凭据”下显示许多项目,包括您的 Outlook 和 GitHub 存储库
您单击 Git 右侧的下拉箭头:它将显示编辑和删除选项。 如果您删除,则下次获取或拉取时会出现凭据弹出窗口。 或者您可以直接在那里编辑凭据。
使用命令行的 Windows、Linux 和 MacOS 解决方案
如果您已在 GitHub 服务器上更新了 GitHub 密码,则在git fetch/pull/push
命令的第一次尝试中,它会生成身份验证失败消息。
再次执行相同的git fetch/pull/push
命令,它会提示输入凭据(用户名和密码)。 输入GitHub服务器的用户名和更新后的密码,登录成功。
即使我也有这个问题,我执行了上述步骤并完成了!!
首先通过 Git 命令git --version
找到您正在使用的git --version
。 如果您的版本高于 1.7.10,则只需使用以下命令:
git config --global credential.helper wincred
然后执行git fetch
,然后提示输入密码更新。
现在,它不会在 Git 中多次提示输入密码。
在我看来,这里的答案已经过时了。 对我来说,使用 Git v2.15.0 完成了这项工作:
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
permit - 正如Git 凭证的典型使用(第 4 步)中提到的 - 告诉凭证助手将凭证标记为已批准并在将来重用它们连接。
FWIW,我偶然发现了同样的问题(我的老板也是,所以它变得更加激烈)。
即时解决方案是删除或修复 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 Credential Manager 中,这是一个已知问题,最快可能会在 2019 年初修复(所以不要屏住呼吸)。
更新(2020-09-30) :GCM4W 似乎或多或少被抛弃了(上次发布是一年多前,从那时起只有一个 commit to master,我不骗你,“重新创建 GCM Logo 的可扩展版本” )。 但是不要绝望,随着微软现在转向 Core,有一个名为GCM Core的闪亮新项目,它似乎可以正确处理密码更改。 它可以独立安装(应该自动激活,否则使用git config --system credential.helper manager-core
激活)但也包含在当前的 Windows 2.28.0 Git 中。 有关它的更多信息,请参阅此博客文章。
只需在安装 git-credential-winstore 的目录中cd
即可。 如果你不知道在哪里,只需在 Git Bash 中运行它:
cat ~/.gitconfig
它应该打印如下内容:
[credential]
helper = !'C:\\ProgramFile\\GitCredStore\\git-credential-winstore.exe'
在这种情况下,您的存储库是 C:\\ProgramFile\\GitCredStore。 使用 Git Bash 或 Windows 命令进入此文件夹后,只需键入:
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 中执行任何需要身份验证的操作时,弹出窗口将询问您的凭据。
对于 Windows 10,它是:
控制面板 > 用户帐户 > 管理您的凭据 > Windows 凭据,搜索 git 凭据并编辑
如果您已重置密码,则会在 git bash 命令窗口中收到 Auth failure 错误。 (它不会显示您可以在其中输入新密码的弹出窗口)。
在 git bash cmd 窗口中输入以下命令:
$ git config --global credential.helper wincred
有时它会显示弹出窗口以输入新密码,或者有时当您尝试执行$git clone
..command 时会显示弹出窗口
如果你不断收到“fatal: Authentication failed for "https://......git”并且你无法更新密码。
- $ git 配置 --global credential.helper wincred
- git 克隆-b..git
- 将显示用户名密码的弹出窗口
- 输入新密码
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.