git: 'credential-cache' 不是一个 git 命令。

331

我完全按照这些说明的步骤操作,包括密码缓存部分。但每次执行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

请帮忙。这太令人沮丧了!


81
要删除消息:"git: 'credential-cache' is not a git command.",请运行命令 "git config --global --unset credential.helper" ,然后按照下面的说明操作。 - Wallace Kelly
7
谢谢您的指令,@Wally。只有在删除“--global”后,您的命令才能对我起作用。 - Web_Designer
可能是使用https://github时是否有跳过密码输入的方法的重复问题。 - Michael Freidgeim
1
您可以手动修改.git/config文件(即删除[credential]下面的行)来删除此消息。 - tarikakyol
1
对于那些阅读下面各种Windows建议的人来说,值得一提的是,git config credential.helper cache确实可以在Cygwin git版本2.13.2中使用。 - Flash Sheridan
显示剩余2条评论
22个回答

7
为了方便其他遇到类似问题的用户,我在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
尽管我已经在Windows上升级到2.8.2版本,但仍然收到“git:'credential-cache'不是git命令”的提示,尽管凭据缓存正在工作!我可能之前使用了一些git config命令导致了这个问题。 - Buttle Butkus
1
@ButtleButkus git config 命令会根据是否使用了 --global 标志来修改 ~/.gitconfig 或存储在仓库本地的 .git/config 文件。请查看这两个文件中与凭据相关的内容。 - Johann

5
为了帮助其他人解决这个问题 - 我来到这里是因为我尝试通过新建Github存储库的方式来设置,但根据设置页面,除非您克隆存储库,否则凭据助手不起作用。
“提示:仅在克隆HTTPS存储库URL时,凭据助手才有效。如果使用SSH存储库URL,则使用SSH密钥进行身份验证。此指南提供帮助生成和使用SSH密钥对。”

4
我知道我有点晚加入谈话,但我遇到了完全相同的问题。 在我的git配置文件中,我有两个凭证条目...
在我的.gitconfig文件中:
[credential]
helper = cached
[credentials]
helper = wincred

解决方案:将我的.gitconfig文件更改为以下设置

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

我认为[credentials]键可以完全删除。 - Mateen Ulhaq

4

在一个较旧的Ubuntu Linux系统上:

git config --global credential.helper store

2

Dev. 2022适用于Git 2.39.0+和GCM v2.0.877(2022年11月),PR 551
GCM no core

warning: git-credential-manager-core已更名为git-credential-manager
warning: 更多信息请参见https://aka.ms/gcm/rename

当前打包的Git for Windows凭据助手(2.38.1.windows.1,2022年10月)为:

 git config credential.helper
 manager

 where git-credential-manager-core
 c:\Program Files\Git\mingw64\bin\git-credential-manager.exe

截至2022年10月,它是manager-core

这是在GCM(Git凭据管理器)之后的情况:microsoft/Git-Credential-Manager/

Git凭据管理器(GCM)是一个安全的Git凭据助手,构建于.NET上,在Windows、macOS和Linux上运行。它旨在为每个主要的源代码控制托管服务和平台提供一致且安全的身份验证体验,包括多因素身份验证。

GCM支持(按字母顺序)Azure DevOps,Azure DevOps Server(以前称为Team Foundation Server),Bitbucket,GitHub和GitLab。
与Git的内置凭据助手(Windows:wincred,macOS:osxkeychain,Linux:gnome-keyring/libsecret)相比,它仅提供用户名/密码的单因素身份验证支持。

GCM替换了基于.NET Framework的Git Credential Manager for Windows和基于Java的Git Credential Manager for Mac and Linux

请注意,最新版本v2.0.866(2022年11月)从入口可执行文件中删除了-core后缀(PR 551)。

将主入口可执行文件从git-credential-manager-core(.exe)重命名为简单的git-credential-manager(.exe),现在旧版GCM4W已从Git for Windows项目中作为选项移除(并且GCMC项目已更名)。

为尚未更新到新版本的用户创建符号链接和shim/copy-executables,以帮助进行迁移。


随着 Git 2.34(2021 年第四季度)的发布,Unix 套接字开始被考虑用于 Git for Windows:

查看 提交bb390b1, 提交245670c, 提交0fdcfa2 (2021年9月14日) 由Carlo Marcelo Arenas Belón (carenas)提交。
(由Junio C Hamano -- gitster --合并于提交c2e7990, 2021年9月23日)

git-compat-util:在Windows中包含Unix套接字的声明

签名作者:Carlo Marcelo Arenas Belón

自Windows 10版本1803和Windows Server 2019发布以来可用。

NO_UNIX_SOCKETS仍然是Windows构建的默认设置,因为它们需要保持与Windows 7之前的版本的向后兼容性,但允许在其他情况下包括头文件。


所以听起来我明天要做的Git更新(2022年11月)可能会破坏我的当前安装?就像我昨天(2022年10月)进行的更新一样,它破坏了一个已经运行良好多年的安装?唉...如果安装将使用新名称...为什么不自动更新〜/ .gitconfig?或者至少告诉用户手动更新〜/ .gitconfig - paulsm4
@paulsm4 我同意,这很不幸。一旦发布,可以在Git For Windows问题中报告。 - VonC
无论如何 - 感谢您在此主题上提供全面、最新的信息。+1:非常感激! - paulsm4

2
另一个高效的解决方法是:
1- 进入控制面板,添加您在github.com上的凭据,如下所示: Windows Credentials for GitHub 2- 进入CMD并输入以下命令:
  • a- cd %localappdata%\Atlassian\SourceTree\git_local\mingw32\bin\
  • b- git.exe config --edit --system
  • c- 用以下内容更正最后一行: helper = manager
  • d- 单击CTRL+C保存新的配置文件,然后键入:wq并按Enter键
update configuration: helper = manager 这对我非常有效!

CMD是什么,它在哪里? - user398843

2
我刚才经历了这个!
  1. 下载 Git 凭据管理器核心并安装它:https://github.com/microsoft/Git-Credential-Manager-Core#download-and-install
  2. 进入 GitHub 的“账户设置 > 邮箱”。您应该会看到类似以下内容: enter image description here
  3. 高亮显示的电子邮件是系统生成的,以保护您的私人电子邮件不被公开。现在将其复制并在下一步中使用。
  4. 配置 git:
 git config --global user.name "yourusername"
 git config --global user.email "1234567+yourgithubusername@users.noreply.github.com"
 git config --global credential.helper cache

现在,您的git命令应该可以正常工作了。
小提示:我正在使用Linux Mint。可能会有所不同。
附加说明:Git凭证管理器Core v 2.0.567存在错误问题,在Debian包中。在新版本发布之前,请安装v2.0.474版本。

1
只需安装最新版本的Git(对我来说是在https://gitforwindows.org),问题就解决了。 - David

1
在我的情况下,这个命令解决了问题:
git config --global credential.helper manager-core --replace-all

使用新的net-core凭据管理器。


1

在我的 .gitconfig 文件的 [credential] 部分中有三个不同的 "helper=" 条目,其中一个为空。删除其他两个并保留 "helper=wincred" 可以解决我的问题。

顺便说一下:我不知道为什么,但我没能立即找到我的 .gitconfig 文件。后来我在 C:\Users\username 找到了它。


建议:如果您使用Git bash(或者碰巧在MacOS或Linux终端提示符中),则您的.gitconfig应该在这里:~/.gitconfig - paulsm4

0
我们在将域从@xy.com更改为@xyz.com后,遇到了与Azure DevOps存储库相同的问题。为了解决这个问题,我们生成了一个新的个人访问令牌,并赋予以下权限:
代码:读取和写入 打包:只读
然后我们打开了Windows凭据管理器,添加了一个新的通用Windows凭据,具体如下:
Internet或网络地址:“git:{projectname}@dev.azure.com/{projectname}”-或者您应该在此处使用您的git存储库名称。 用户名:“个人访问令牌” 密码:生成的个人访问令牌
之后,我们所有的git操作都可以正常工作了。希望这能帮助其他人!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接