I was running Git for Windows 2.37.1.windows.1 just fine on a Windows 10 machine. I've been updating Git for Windows on that old machine for years. My ~/gitconfig
file contained:
[credential]
helper = manager
I installed a clean Windows 10 on a new machine, and ran the exact same executable on the new machine to install Git. git --version
correctly shows git version 2.37.1.windows.1
.
I tried to access a Bitbucket secure repository, and it popped up an authentication dialog (not surprising), but on the command line it said:
git: 'credential-manager' is not a git command. See 'git --help'.
The most similar command is
credential-manager-core
I realize there are several Stack Overflow questions, one of them saying to remove the [credential]
section, one of them saying to change manager
to manager-core
, and yet another saying to run git credential-manager-core configure
, etc.
But those are not my main question. Sure, I can spend half the day trying all these different commands and combinations trying to get Git working again.
My central question here is this: if the same version of Git for Windows worked on the old machine, why doesn't the exact same version of Git installed on the new machine work with the exact same .gitconfig
? What is different? What did not get configured when I ran the Git for Windows installation executable on the new machine?
I'm going to take a stab at what is going on. If I run git credential-manager-core --version
on each machine, it returns the same result, so Git Credential Manager Core seems indeed to be installed on both systems. But in reading Git Credential Manager Core: Building a universal authentication experience it appears that before there was Git Manager Core, there was just Git Manager.
So I'm guessing that on the old machine Git originally used Git Manager. Eventually the newer versions of Git preferred Git Manager Core, but they continued to use Git Manager (which probably had been installed on my old machine via a previous Git version) because it was still set that way in .gitconfig
.
But on the new machine the latest Git version only installed Git Manager Core by default, not Git Manager. As my .gitconfig
still referenced the old Git Manager, it couldn't find it as it hasn't been installed (and the installer saw no reason to install it because the installer probably didn't read the .gitconfig
closely).
I fixed the problem by changing manager
to manager-core
in .gitconfig
:
[credential]
helper = manager-core
Update for Git 2.39.1.windows.1: Now they are saying that "Git Credential Manager Core" was renamed to "Git Credential Manager" but that the executable for a while was left as git-credential-manager-core
but has now been changed to git-credential-manager
. A new warning git-credential-manager-core was renamed to git-credential-manager
appears using Git 2.39.1.windows.1. Changing helper = manager-core
back to helper = manager
in .gitconfig
makes the warning go away, although the instructions recommend this:
[credential]
helper =
helper = C:/Program\\ Files\\ \\(x86\\)/Git\\ Credential\\ Manager/git-credential-manager.exe
This is confusing, to say the least.