git:'credential-cache'不是git命令


264

我按照这些说明进行操作,包括有关密码缓存的部分。看来指令是错误的,因为每次git push origin master我收到此错误:

git: 'credential-cache' is not a git command. See 'get --help'.

...这时我被迫输入我的用户名和密码。完成此操作后,再次显示相同的错误消息,然后显示的输出git push

这是我的.gitconfig文件的内容:

[user]
    name = myusername
    email = myusername@myemaildomain.com
[credential]
    helper = cache

要明确的是,在我安装Git并运行Git Bash之后,这正是我键入的内容:

git config --global user.name "myusername"
git config --global user.email "myusername@myemaildomain.com"
git config --global credential.helper cache

请帮忙。真令人沮丧!


53
要删除消息“ git:'credential-cache'不是git命令。”,请运行“ git config --global --unset credential.helper”,然后可以按照以下说明进行操作。
华莱士凯利

5
@Wally +1谢谢,您的命令只有在删除后才对我有用--global
Web_Designer 2014年


1
您也可以通过手动修改.git / config文件来删除该消息(即删除[credential]下面的行)
tarikakyol

FWIW对于那些阅读下面各种Windows建议的人来说,对于Cygwin git 2.13.2版git config credential.helper cache 确实有用。
Flash Sheridan

Answers:


323

博客中我发现

“ [git-credential-cache]在Windows系统上不起作用,因为git-credential-cache通过Unix套接字进行通信。”

Windows版Git

由于msysgit已被Windows的Git取代,因此使用Windows的Git现在是最简单的选择。某些版本的Git for Windows安装程序(例如2.7.4)在安装过程中具有一个复选框,以启用Git凭据管理器。这是屏幕截图:

Git For Windows 2.7.4安装向导的屏幕截图

还在使用msysgit吗?对于msysgit 1.8.1及更高版本

wincred辅助程序已添加到msysgit 1.8.1中。如下使用它:

git config --global credential.helper wincred

对于早于1.8.1的msysgit版本

首先,下载git-credential-winstore并将其安装在您的git bin目录中。

接下来,确保包含git.cmd的目录在您的Path环境变量中。在64位系统上,默认目录为C:\ Program Files(x86)\ Git \ cmd,在32位系统上为C:\ Program Files \ Git \ cmd。一种简单的测试方法是启动命令提示符并键入git。如果没有git命令列表,则说明设置不正确。

最后,启动命令提示符并键入:

git config --global credential.helper winstore

或者,您可以手动编辑.gitconfig文件:

[credential]
    helper = winstore

完成此操作后,您可以通过Windows凭据管理器管理git凭据,您可以通过Windows控制面板上拉它。


4
gitcredentialstore.codeplex.com包含常见问题解答。它帮助我成功安装了winstore。二进制崩溃,除非您从git-bash运行它。
ruruskyi

8
仅供参考,我必须以明确的管理员权限进行安装。没有它,我得到的错误是“ git:'credential-winstore'不是git命令。请参阅'git --help'”。我的.gitconfig现在看起来也有些不同,[凭据行]具有“ helper =!'C:\\ Users \\ Malachi \\ AppData \\ Roaming \\ GitCredStore \\ git-credential-winstore.exe”
玛拉基

我的抛出一个未处理的异常并死了-System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
Andrew

1
他们为什么要在多平台应用程序中使用Unix套接字,是否有原因?如果是这样,为什么默认情况下git-credential-winstore不随Windows版本的Git一起提供?

3
git-credential-winstore工具不适用于我。它曾经是,但是突然间,我到处提示。我已经检查了.git-config和Windows凭据管理器,所有内容都应该存在。它根本不起作用,我真的不知道为什么。:(
克里斯·麦肯齐


30

第一次运行 git config --global credential.helper wincred

然后转到: CONTROL PANEL\CREDENTIAL MANAGER\WINDOWS CREDENTIAL\GENERIC CREDENTIAL

然后在Internet or network address: 添加git:https://{用户名}中单击添加凭据.github.com

User: {名称}

Password: {密码}


2
Credential Manager位于Windows 7中的用户帐户和家庭安全中
Casey Murray

1
谢谢!我花了一个小时才找到更改域名密码后如何修复Windows凭据管理器的方法。天哪,真是迷宫。
SadBunny

3
%windir%\explorer.exe shell:::{1206F5F1-0569-412C-8FEC-3204630DFB70}从控制台也将启动凭据管理器。
Jeroen Wiert Pluimers

1
谢谢,我的问题已解决:)
Diallo

21

我在Windows7上使用AptanaStudio3时遇到了这个问题。这对我有帮助:

git config --global credential.helper wincred

这里获取的代码


10

现在,通过在Windows上双击一个小exe,有一种更简单的方法来设置Git密码缓存。git-credential-winstore尽管该项目已从GitHub移至http://gitcredentialstore.codeplex.com/,但该程序仍基于投票结果最高的答案。

您可以从此博客文章下载exe(以及Mac的二​​进制文件):https : //github.com/blog/1104-credential-caching-for-wrist-friendly-git-usage


这是我一直在寻找的答案。Microsoft已开始维护该项目。它将密码存储在Windows凭据存储中。
Gordolio

10

类似的错误是 'credential-wincred' is not a git command

现已接受和流行的答案已过时...

wincred适用于不再维护的项目git-credential-winstore 。

它由Microsoft开源维护的WindowsGit-Credential-Manager-for Windows取代。

从上面的链接下载该版本为zip文件,并将内容提取到

\cygwin\usr\libexec\git-core

(或\cygwin64\usr\libexec\git-core可能如此)

然后启用它(通过设置global .gitconfig)-执行:

git config --global credential.helper manager

如何使用

无需进一步的配置。

当需要凭据时,它可以自动运行。

例如,当推送到Azure DevOps时,它将打开一个窗口并初始化oauth2流以获取令牌。

参考:


8

首先找到用于GIT的版本。

使用以下命令:git --version

如果您的版本高于1.7.10。

然后只需使用此命令。

git config --global credential.helper wincred

参考


6

为了其他人解决这个问题,我在Ubuntu中遇到了同样的问题(即尽管正确设置了选项并得到了错误,但我的密码没有缓存git: 'credential-cache' is not a git command.),直到我发现此功能只是在Git 1.7.9及更高版本中可用

在较旧的Ubuntu发行版上(Natty;我是一个固执的Gnome 2用户),回购中的版本是git版本1.7.4.1。我使用以下PPA进行升级:https : //launchpad.net/~git-core/+archive/ppa


1
git: 'credential-cache' is not a git command.即使在凭据缓存正在运行的情况下,即使在Windows上升级到2.8.2版后,我仍然得到支持!我以前可能通过使用某些git config命令来创建此问题。
Buttle Butkus

1
@ButtleButkus git config会根据是否使用该标志来更改~/.gitconfigrepo-local或repo-local 。在这两个文件中查找与凭据相关的任何内容。.git/config--global
约翰,

5

为了其他人遇到这个问题-我登陆这里是因为我试图对设置新github存储库的方式变得很可爱,但是在设置页面中,除非您克隆存储库,否则凭据帮助程序将不起作用。

“提示:仅当您克隆HTTPS存储库URL时,凭据帮助器才起作用。如果您改用SSH存储库URL,则使用SSH密钥进行身份验证。本指南提供了生成和使用SSH密钥对的帮助。”


4

我通过credential从特定项目的配置中删除此部分来解决此问题:

  • 刚刚输入: git config -e
  • 在编辑器中,我删除了整个部分[credential] helper = cache

这消除了烦人的消息:

git: 'credential-cache' is not a git command. See 'git --help'.


1
我从上面尝试了许多解决方案,这是唯一可行的解​​决方案。我只是进入我的.git文件夹,打开配置文件并删除了[credential] helper = global(我不小心将其设置为“ global”)。非常感谢Pini Cheyni。
Filip Savic '18

1
我很高兴能为您提供帮助
Pini Cheyni,

3

我知道我的对话时间有点晚,但是我遇到了完全相同的问题。在我的git config中,我有两个条目凭据…

在我的.gitconfig文件中

[credential]
helper = cached
[credentials]
helper = wincred

修复:将我的.gitconfig文件更改为以下设置

[credential]
helper = wincred
[credentials]
helper = wincred

0

域更改后,即从@ xy.com更改为@ xyz.com,我们的Azure DevOps存储库也遇到了相同的问题。为了解决此问题,我们生成了具有以下权限的全新个人访问令牌:

代码:读写包装:读写

然后,我们打开Windows凭据管理器,添加了具有以下详细信息的新的通用Windows凭据:

Internet或网络地址: “混帐:{ 项目名称 } @ dev.azure.com / { 项目名称 }” -或者你应该在这里用你的Git仓库名称。
用户名: “个人访问令牌”
密码: { 生成的个人访问令牌 }

之后,我们所有的git操作都重新开始。希望这对别人有帮助!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.