我目前正在通过HTTPS使用GitHub,并在Windows 7上安装了最新版本的Git(1.9.0)以及Git凭据帮助程序。
在设置环境时,我告诉git-credentials永久地记住我的用户名和密码。
我最近通过网站更新了我的GitHub密码,现在我不再能够推/拉/取等。
如何在Windows 7的git-credentials helper上更新我的密码?
我目前正在通过HTTPS使用GitHub,并在Windows 7上安装了最新版本的Git(1.9.0)以及Git凭据帮助程序。
在设置环境时,我告诉git-credentials永久地记住我的用户名和密码。
我最近通过网站更新了我的GitHub密码,现在我不再能够推/拉/取等。
如何在Windows 7的git-credentials helper上更新我的密码?
当前回答
在安装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命令Git——version找到您正在使用的版本。如果您的版本比1.7.10更新,那么只需使用这个命令:
git config --global credential.helper wincred
然后进行git获取,然后提示密码更新。
现在,它不会在Git中多次提示输入密码。
对于git bash 2.26.2,目前的解决方案都不适合我。 如果您正在使用windows凭据管理器,这应该在任何情况下都有效。
一个问题是为登录用户运行的windows凭据管理器。以我的例子为例,我用右键单击运行git bash,以管理员身份运行。因此,我存储的凭据是在凭据管理器,我不能访问与windows GUI,如果我不登录到windows作为管理员。
要解决这个问题:
以admin(或任何你运行git bash的用户)打开cmd 进入“windows/system32”目录 输入cmdkey /list。你的旧证书应该出现在这里,其中一个部分写着…目标:xxx… 输入cmdkey /delete:xxx,其中xxx是上一行的目标
它会确认你的证书已被删除。下次在git bash中执行任何需要身份验证的操作时,将会弹出一个窗口询问您的凭据。
在安装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获取时,我被告知我的用户名/密码组合无效。这是正确的,因为git-credential helper已经缓存了我的旧值。
然而,在重新启动我的终端/命令提示符后,我尝试了另一个git取回,这一次凭据助手提示我输入我的GitHub用户名和密码。
我怀疑最初失败的Git获取请求结合重新启动我的终端/命令提示符解决了这个问题。
我希望这个答案能在未来帮助到其他处于类似处境的人!
这些答案最终都不能解决我的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