gitgithubpasswords

How do I sign out in the Git Bash console in Windows?


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.


Solution

  • 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.