I'm using Git, on Windows, version 2.9.2.windows.1.
I work on a repository project and when I do a push, it asked me to enter my GitHub username and password. I entered both my GitHub username and password to update the project.
In my next push, it doesn't ask for my username and password any more. All my modifications for the project are updated.
It looks like my username and password are "saved". How do I "unsave" them?
How do I sign out?
I tried
git config --global --unset user.name
git config --global --unset user.email
git config --global --unset credential.helper
But they do not make me sign out.
I want to clear my sign in so the next time I make a push, it asks me again to enter my username and password.
First, user authentication has nothing to do with user.name
and user.email
git config.
And second, compared to the old answer "remove credentials from git", the latest Git for Windows uses Git Credential Manager (Git 2.9.2 => GCM 1.5.0).
Check your config (git config -l
) and see if "manager
" (or, more recently, 2020+: "manager-core
") is registered there.
If not, set it up with:
git config --global credential.helper manager-core
Since its v1.3.0 (April 2016), it had a delete command to purge credentials.
git credential-manager delete <url>
Update 2018: "delete
" is now deprecated, use reject
:
Update 2020: "reject
" is now deprecated, use erase
:
git credential-manager erase <url>
Actually, whatever 'xxx
' credential manager you are using ('xxx
' being the result of git config credential.helper
), you can do:
printf "protocol=https\nhost=github.com" | git-credential-xxx erase
# Windows (2020-2021)
printf "protocol=https\nhost=github.com" | git-credential-manager-core erase
# Linux
printf "protocol=https\nhost=github.com" | git-credential-libsecret erase
# MacOs
printf "protocol=https\nhost=github.com" | git-credential-osxkeychain erase
This is better than fiddling with the Credential Manager of your OS.
That git-credential-xxx
executable is in usr/libexec/git-core
or (for Windows) mingw64/libexec/git-core
of your Git installation.
As mentioned here, on MacOS, it should already be in /usr/local/git/bin/
.
If git config credential-manager
returns store
, then Git uses the "store
" mode, which saves the credentials to a plain-text file on disk, and they never expire.
type %USERPROFILE%\.git-credentials
I would remove that particular credential helper from the config, as it stores credentials in plain text.
The OP Lord Rixuel actually confirms in the comments it is a native Windows Credential Manager function which provides automatically (Git or not) the credentials:
I see the "Manage your credentials" option, I click on it out of curiosity, then I click on "Windows Credentials", under "Generic Credentials", there is "
git:github.com
";, I click on it and there is the "Remove" option. I clicked Remove.When I do a
git push
, it asks again for my user and my password. Exactly what I want when I want to sign out.