繁体   English   中英

Git 凭证助手 - 更新密码

[英]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 帐户相关的凭据并编辑它们以使用更新后的密码。

参考: 如何在 Windows 上更新您的 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.dllcontrol /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 中。 有关它的更多信息,请参阅此博客文章

适用于 Windows 的工作解决方案:

控制面板 > 用户帐户 > 凭证管理器 > 通用凭证

在此处输入图片说明

只需在安装 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 访问该凭据。

要解决此问题:

  • 以管理员身份打开一个 cmd(或者你用 bash 运行的任何用户)
  • 转到 windows/system32
  • 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”并且你无法更新密码。

  1. $ git 配置 --global credential.helper wincred
  2. git 克隆-b..git
  3. 将显示用户名密码的弹出窗口
  4. 输入新密码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM