我严格遵守了这些说明,包括关于密码缓存的部分。看起来指令是错误的,因为每次我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

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


当前回答

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

代码:读写 包装:阅读

然后我们打开Windows凭据管理器,添加一个新的通用Windows凭据,详细信息如下:

Internet或网络地址:"git:{projectname}@dev.azure.com/{projectname}" -或者你可以在这里使用你的git存储库名称。 用户名:“个人访问令牌” 密码:{生成的个人访问令牌}

后来我们所有的git操作都恢复正常了。希望这能帮助到其他人!

其他回答

对于git版本>=1.7.10(使用git——version检查),使用以下方法(参考):

窗口:

git config --global credential.helper wincred

Mac:

git config --global credential.helper osxkeychain

我刚刚真的经历了这个!

下载Git Credential Manager Core并安装:https://github.com/microsoft/Git-Credential-Manager-Core#download-and-install 进入GitHub上的帐户设置>电子邮件。你应该会看到这样的东西: 突出显示的电子邮件是系统生成的,以保持您的私人电子邮件私密性。现在复制它,并在下一步中使用它 配置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。YMMV

附加说明:在Debian版本的Git凭证管理器核心v 2.0.567中有一个bug。请在新版本发布之前安装v2.0.474。

2022年10月Git 2.38.1+:

警告:git-credential-manager-core被重命名为git-credential-manager 警告:更多信息请参见https://aka.ms/gcm/rename

Git for Windows (2.38.1.windows。2022年10月1日)

 git config credential.helper
 manager

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

截至2022年10月,它是经理核心。

这是在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取代了Windows的基于。net框架的Git凭据管理器和Mac和Linux的基于java的Git凭据管理器。

请注意,最新版本v2.0.866(2022年11月)在可执行条目中删除了-core后缀(PR 551)

将主条目可执行文件从Git -credential-manager-core(.exe)重命名为Git -credential-manager(.exe),现在旧的GCM4W已经作为一个选项从Git for Windows项目中删除了(GCMC项目已经重命名)。 为了在一定程度上帮助迁移,可以为尚未更新到新版本的用户创建符号链接和为原始可执行名称“git- credicate -manager-core(.exe)”创建shim/copy-可执行文件。


在Git 2.34(2021年Q4)中,unix套接字开始被考虑用于Git for Windows:

参见Carlo Marcelo Arenas的commit bb390b1, commit 245670c, commit 0fdcfa2(2021年9月14日)Belón (carenas)。 (由Junio C Hamano—gitster—在commit c2e7990中合并,2021年9月23日)

Git-compat-util:包含Windows中Unix套接字的声明 署名:卡洛·马塞洛·阿里纳斯Belón

自Windows 10 1803版和Windows Server 2019版提供。 NO_UNIX_SOCKETS仍然是Windows构建的默认值,因为它们需要与Windows 7之前的版本保持向后兼容性,但允许包括头文件。

这招对我很管用:

git credential-manager-core configure

现在有一种更简单的方法来设置Git密码缓存,只需双击Windows上的一个小exe即可。该程序仍然基于投票最多的答案所提到的git-credential-winstore,尽管该项目已经从GitHub移动到http://gitcredentialstore.codeplex.com/

你可以从这篇博客上下载exe(和Mac的二进制文件):https://github.com/blog/1104-credential-caching-for-wrist-friendly-git-usage