Remove credentials from Git
Asked Answered
H

41

998

I'm working with several repositories, but lately I was just working in our internal one and all was great.

Today I had to commit and push code into other one, but I'm having some troubles.

$ git push appharbor master
error: The requested URL returned error: 403 while accessing https://[email protected]/mitivo.git/info/refs?service=git-receive-pack
fatal: HTTP request failed

There is nothing I can do, that would bring the password entry again.

How can I reset the credentials on my system so Git will ask me for the password of that repository?

I have tried:

  • git config --global --unset core.askpass

in order to unset the password

  • git config credential.helper 'cache --timeout=1'

in order to avoid credentials cache...

Nothing seems to work; does anyone have a better idea?

Hoar answered 13/3, 2013 at 9:20 Comment(8)
Do you have a ~/.netrc file?Mcclendon
@Mcclendon it's a windows machine, and I can't find that file, not even from Git Bash...Hoar
@Hoar for a Windows machine, I prefer using the new (git 1.8.3) credential helper netrc, which would store multiple credential in an encrypted file. It is better than entering your password each time for each session, since the cache only "caches" the password for a certain time. See a full example here.Bickford
I don't have .netrc. I do have a file in ~ (C:\Users\Myself) named .git-credentials, but erasing it didn't work, I'm still logged into Git Shell. Also, the Control Panel Credential Manager doesn't seem to be storing anything. Local and global Git config files seems ok. I inherited my workstation from an employee that left, so it could be that he set-up some unorthodox credential caching mechanism that I have no clue how to turn off. I hope this behavior IS NOT the default of Git Windows. On Mac credential caching is the default but at least it shows up in Keychain Access.Morrison
A fuller answer which also works on linux, windows and Mac OS X see https://mcmap.net/q/13929/-my-old-username-is-still-in-useBestride
people concerned about security may want to ensure this rm ~/.git-credentials afterwards. Being prompted for a password doesn't mean that they are not stored.Sough
(note that this is not enough to erase the password)Sough
With the more recent (2019-2021) cross-platform (Windows, Mac, Linux) GCM -- Git Credential Manager Core, you can use a command-line to remove your credentials. See my answer below.Bickford
H
1290

If this problem comes on a Windows machine, do the following.

  • Go to Credential Manager

    • in German, it is called: Anmeldeinformationsverwaltung
    • in French, it is called: Gestionnaire d'identification
    • in Polish, it is called: Menedżer poświadczeń
    • in Portuguese, it is called: Gerenciador de Credenciais
    • in Russian, it is called: Диспетчер учётных данных
    • in Spanish, it is called: Administrador de credenciales
    • in Norwegian, it is called: Legitimasjonsbehandling
    • in Czech, it is called: Správce pověření
    • in Dutch, it is called: Referentiebeheer
    • in Italian, it is called: Gestione credenziali

    Go to Credential Manager

  • Go to Windows Credentials

  • Delete the entries under Generic Credentials

    Go to Windows Credentials and Delete the entries under Generic Credentials

  • Try connecting again. This time, it should prompt you for the correct username and password.

Hematology answered 21/9, 2016 at 6:24 Comment(14)
This is only relevant if your credential.helper=manager. To test this type git config --list. If it's set to store then credentials are not stored in the credentials store but are stored un-encrypted.Trilateral
I only had to delete the credential named git:https://github.com and I was prompted to enter my username/pass the next time I cloned a repo using PyCharm. I had more than one github account and the wrong one was cached.Bankbook
If someone is searching this on a german localized machine, it is "Anmeldeinformationsverwaltung" on path Systemsteuerung\Alle Systemsteuerungselemente\Anmeldeinformationsverwaltung.Harryharsh
Alternatively you can change the user/pass in the Credential Manager. That worked for me tooAesop
Deleting the credentials solved my 403 error via Bitbucket.Tolbutamide
for all german users: Systemsteuerung\Benutzerkonten\AnmeldeinformationsverwaltungPatsypatt
In french: "Credential manager" = "Gestionnaire d'identification"Oxalate
If you're unable to get to credential manager via Windows you can run this from the command prompt to access it: rundll32.exe keymgr.dll,KRShowKeyMgrMilly
In Dutch (or Nederlands, for googlability) you have to look for Referentiebeheer on path Configuratiescherm\Gebruikersaccounts\Referentiebeheer.Clop
In Norwegian: "Legitimasjonsbehandling"Gumption
if in the search result, it is not coming. Go to control panel, search it there (right side top)Agnola
This works, but somehow I had an excessive number of git credentials in credential manager and it would have been very tedious to remove them one at a time. I found this powershell script helpful to clean them all out: cmdkey /list | ForEach-Object{if($_ -like "*Target:*" -and $_ -like "*git*"){cmdkey /del:($_ -replace " ","" -replace "Target:","")}}Pacifier
The fact that Windows uses for every language its own name, is a sign of a poor mind setting.Aweigh
if you are using .gitconfig passwords (and not ssh store) simply move the .gitconfig file in folder: C:\Users\YOUR_USER_NAME and it will ask you for credentials again, (or add a line for your user / password in that file)Firebug
U
781

The Git credential cache runs a daemon process which caches your credentials in memory and hands them out on demand. So killing your git-credential-cache--daemon process throws all these away and results in re-prompting you for your password if you continue to use this as the cache.helper option.

You could also disable use of the Git credential cache using git config --global --unset credential.helper. Then reset this, and you would continue to have the cached credentials available for other repositories (if any). You may also need to do git config --system --unset credential.helper if this has been set in the system configuration file (for example, Git for Windows 2).

On Windows you might be better off using the manager helper (git config --global credential.helper manager). This stores your credentials in the Windows credential store which has a Control Panel interface where you can delete or edit your stored credentials. With this store, your details are secured by your Windows login and can persist over multiple sessions. The manager helper included in Git for Windows 2.x has replaced the earlier wincred helper that was added in Git for Windows 1.8.1.1. A similar helper called winstore is also available online and was used with GitExtensions as it offers a more GUI driven interface. The manager helper offers the same GUI interface as winstore.

Extract from the Windows 10 support page detailing the Windows credential manager:

To open Credential Manager, type "credential manager" in the search box on the taskbar and select Credential Manager Control panel.

And then select Windows Credentials to edit (=remove or modify) the stored git credentials for a given URL.

Unexceptional answered 13/3, 2013 at 10:38 Comment(14)
Is this the winstore helper you mentioned? gitcredentialstore.codeplex.comPhotomap
I found the Windows Credential control panel at Control Panel\User Accounts\Credential Manager under Windows 7Chemism
Doesn't killing the process leave any traces somewhere, so that the password could be still accessed? According to git manual they are stored in "plain text".Fishbein
The git-credential-cache helper stores things in current memory. Something might end up in the system pagefile but it is no more readable that it was while the process was running.Unexceptional
Under windows 8.1 the "Windows Credentials" was under Generic Credentials and git:gitlab.com or your git server of choice.Ressieressler
Under Windows 8/10 the detailed User Account Settings are located under the "classic" Controll Panel, not the "Settings" App (modern UI). Just to avoid confusion.Bathe
"helper=wincred" was the hint. It was not listed in the git online book.Cotswold
On a windows box just do this: git config --global credential.helper manager. No need for anything else.Bassesalpes
in windows 10 Go to Control Panel\All Control Panel Items\Credential Manager . There could be a Generic Credential for GitHub. You can update the user name and password there.Detriment
killing the process still leaves traces. at least in 1.9.1. be careful.Sough
git config --system --unset credential.helper helped me on macCrambo
please update your comment to point out that if we are using Windows and if the commands dont seem to work we need to open a GitBash as Administrator and run them there, this is how I got them to workXiaoximena
This helped but I also had to re-install git to fit my issue on Windows. Something got wacked out in creds stuffRegression
None of the solutions worked for me. I hate git.Prog
S
210

Retype:

$ git config credential.helper store

And then you will be prompted to enter your credentials again.

WARNING

Using this helper will store your passwords unencrypted on disk

Source: https://git-scm.com/docs/git-credential-store

Snips answered 18/11, 2014 at 18:55 Comment(5)
this command not asking to enter my credentials again, this command is doing nothingLycanthropy
@ShirishHerwade try git pull, then you'll see prompt screenLiripipe
@jkokorian To undo this command delete the relevant lines from .git/config.Em
@zenadix if you don't want to do that manually, you can use git config --unset credential.helperBithia
The command given in this solution does not ask for a new password. It seems to do nothingAnnabal
G
176

I faced the same issue as the OP. It was taking my old Git credentials stored somewhere on the system and I wanted to use Git with my new credentials, so I ran the command

$ git config --system --list

It showed

credential.helper=manager

Whenever I performed git push it was taking my old username which I set long back, and I wanted to use new a GitHub account to push changes. I later found that my old GitHub account credentials was stored under Control PanelUser AccountsCredential ManagerManage Windows Credentials.

Manage Windows Credentials

I just removed these credentials and when I performed git push it asked me for my GitHub credentials, and it worked like a charm.

Geof answered 20/9, 2016 at 11:9 Comment(7)
Good illustration of the recent of the recent Git Credential Manager (github.com/Microsoft/Git-Credential-Manager-for-Windows) which works by storing credentials (github.com/Microsoft/Git-Credential-Manager-for-Windows/issues/…) +1Bickford
@Bickford It took me a day to find out this as i wasn't aware of this mechanism of storing credentials.Geof
It is fairly recent indeed. Thank you for mentioning it here.Bickford
This is probably the better answer than the "accepted" one, which to me implies nuking all credentials. Definitely helped me.Bulldozer
Git Credential Manager Core is the more recent and default credential manager. In recent versions of Git git config --global --list should now return credential.helper=manager-core and not credential.helper=managerHurt
Thanks a lot, this works! We can also click the Edit and update the password.Adjutant
The attached image is very helpful thanks for adding it!Arrogate
T
66

Try using the below command.

git credential-manager

Here you can get various options to manage your credentials (check the below screen).

Enter image description here

Or you can even directly try this command:

git credential-manager uninstall

This will start prompting for passwords again on each server interaction request.

Trilinear answered 11/8, 2016 at 5:57 Comment(9)
Why am I getting - git: 'credential-manager' is not a git command. See 'git --help'.Deas
Not sure, why isn't it working for you, but even in latest git version, it's available. Please refer this link for more info - git-scm.com/book/gr/v2/Git-Tools-Credential-StorageTrilinear
Got removal failed. U_U Press any key to continue... fatal: InvalidOperationException encountered. Cannot read keys when either application does not have a console or when console input has been redirected from a file. Try Console.Read. (with the nice U_U emoji out of nowhere :))Bomarc
The only solution that worked for me on Windows with GitBash.Shabby
maybe an aside, but i installed git via choco, and this [uninstall] method was good for me for pulling a repo on a deployed computer without storing credentialsHunkers
@Saikat: check your ~/.gitconfig - I'll bet you have that line in the [credential] sectionGreengage
I also get `git: 'credential-manager' is not a git command. See 'git --help'. I am on MacOS. Maybe this command only works on Windows?Garnet
According to the Pro Git book linked by @HimanshuAggarwal above, Credential Manager can be installed on Linux, and MacOS. It does not say it is the default. Sounds like it does come bundled in Git for Windows. See: github.com/GitCredentialManager/git-credential-manager git-scm.com/book/en/v2/Git-Tools-Credential-StorageGarnet
git credential-manager unconfigure worked for me.Paisano
M
55

I found something that worked for me. When I wrote my comment to the OP I had failed to check the system config file:

git config --system -l

shows a

credential.helper=!github --credentials

line. I unset it with

git config --system --unset credential.helper

and now the credentials are forgotten.

Morrison answered 18/11, 2015 at 11:21 Comment(3)
Ankur, you may need to run the suggested command in similar ways from 2-3 times if you have gotten a couple credential helpers configured. git config --global --unset credential.helper and maybe just git config --unset credential.helper in your repository if you had somehow set it explicitly there.Kyoko
thanks for the solution. Just a detail : in my case I had to launch the command prompt as an administratorIntrepid
only this helped on macPurdy
M
43

This error appears when you are using multiple Git accounts on the same machine.

If you are using macOS then you can remove the saved credentials of github.com.

Please follow below steps to remove the github.com credentials.

  1. Open Keychain Access
  2. Find github
  3. Select the github.com and Right click on it
  4. Delete "github.com"
  5. Try again to Push or Pull to git and it will ask for the credentials.
  6. Enter valid credentials for repository account.
  7. Done

    enter image description here

Module answered 3/12, 2018 at 11:11 Comment(2)
Finally a solution that was for Mac and worked perfectlyCarnify
This doesn't work for me on Mac. I had several github passwords saved and deleted them all and I still don't get asked for credentials. I've tried everything I've seen and nothing works. I have 2 credentials saved and I can't delete them. Any help?Walterwalters
C
40
git config --list

will show credential.helper = manager (this is on a windows machine)

To disable this cached username/password for your current local git folder, simply enter

git config credential.helper ""

This way, git will prompt for password every time, ignoring what's saved inside "manager".

Cormick answered 25/9, 2017 at 14:51 Comment(6)
I have the error below, git: 'credential-' is not a git command. See 'git --help'., but for security I am upvoting this answer because it is the only one that made me be prompted for a new password. I am wondering, however, if this is not just masking the problem (is the password really removed?)Sough
Nope: rm -rf ~/.git-credentials did. Note that it can vary (git help credential-store)Sough
sorry, this really doesn't work. it will ask for the password once more and store it again. would remove my upvote if allowed.Sough
git config --unset credential.helper clears the entry. This answer just sets it to empty string and produces the error that @Sough described in comments.Steppe
Thank you so much it worked for me, Really appreciate that, upvote for youHeiduc
I get fatal: not in a git directory when I run the second commandBeyer
L
37

In my case, Git is using Windows to store credentials.

All you have to do is remove the stored credentials stored in your Windows account:

Windows credentials menu

Lemos answered 2/3, 2017 at 14:20 Comment(2)
How does this differ from this answer? or this one?Trilateral
apparently this has descriptive images :-DLohengrin
G
36

You have to update it in your Credential Manager.

Go to Control Panel > User Accounts > Credential Manager > Windows Credentials. You will see Git credentials in the list (e.g. git:https://). Click on it, update the password, and execute git pull/push command from your Git bash and it won't throw any more error messages.

Guarded answered 18/6, 2018 at 23:45 Comment(2)
works for me in Windows 10, and no need to restart my IDEFonz
Thanks! I had trouble removing some incorrect Git credentials because I was in a locked-down University computer without admin privileges. This solution worked.Dryasdust
M
25

In Windows 2003 Server with "wincred"*, none of the other answers helped me. I had to use cmdkey.

  • cmdkey /list lists all stored credentials.
  • cmdkey /delete:Target deletes the credential with "Target" name.

cmdkey /list; cmdkey /delete:Target

(* By "wincred" I mean git config --global credential.helper wincred)

Murr answered 12/12, 2016 at 23:55 Comment(2)
Yes, cmdkey is the command-line counterpart to the Windows Credentials described in the chosen answer.Beatrisbeatrisa
Here's the cmdkey help for reference.Forestall
S
20

Using latest version of git for Windows on Windows 10 Professional and I had a similar issue whereby I have two different GitHub accounts and also a Bitbucket account so things got a bit confusing for VS2017, git extensions and git bash.

I first checked how git was handling my credentials with this command (run git bash with elevated commands or you get errors):

git config --list

I found the entry Credential Manager so I clicked on the START button > typed Credential Manager to and left-clicked on the credential manager yellow safe icon which launched the app. I then clicked on the Windows Credentials tabs and found the entry for my current git account which happened to be Bit-bucket so I deleted this account.

But this didn't do the trick so the next step was to unset the credentials and I did this from the repository directory on my laptop that contains the GitHub project I am trying to push to the remote. I typed the following command:

git config --system --unset credential.helper

Then I did a git push and I was prompted for a GitHub username which I entered (the correct one I needed) and then the associated password and everything got pushed correctly.

I am not sure how much of an issue this is going forward most people probably work off the one repository but I have to work across several and using different providers so may encounter this issue again.

Soosoochow answered 16/9, 2018 at 15:51 Comment(1)
I was facing repository not found error even when repository existed. GIT was not asking for credentials. I ran this command: git config --system --unset credential.helper and it asked for credentials and my issue was resolved.Trinitarianism
C
19

If you want git to forget old saved credentials and re-enter username and password, you can do that using below command:

git credential-cache exit

After running above command, if you try to push anything it will provide option to enter username and password.

Cusick answered 13/12, 2019 at 8:25 Comment(5)
This is the best solution!Quimper
git: 'credential-cache' is not a git command. See 'git --help'.Prog
@SerdarSamancıoğlu Use git help -a and you will see information about credential-cache in Low level commands / Internal helpers.Cusick
@Cusick actually that wasn't a comment, I just copied the error I got after trying git command.Prog
@SerdarSamancıoğlu got it. Are you able to see that command when you run git help -a ?Cusick
L
18

In case Git Credential Manager for Windows is used (which current versions usually do):

git credential-manager clear

This was added mid-2016. To check if credential manager is used:

git config --global credential.helper
→ manager
Ludlow answered 23/1, 2018 at 15:53 Comment(1)
This works as well if the credential helper is manager-core.Dispersoid
T
18

Got same error when doing a 'git pull' and this is how I fixed it.

  1. Change repo to HTTPS
  2. Run command git config --system --unset credential.helper
  3. Run command git config --system --add credential.helper manager
  4. Test command git pull
  5. Enter credentials in the login window that pops up.
  6. Git pull completed successfully.
Telecommunication answered 1/10, 2018 at 3:25 Comment(3)
--system? What about --global? What about no scope? What does the setting scope mean?Rebhun
Not working for me, still doesn't ask for credentials while doing a clone.Prog
git config --system --unset credential.helper outputs C:/Program Files/Git/etc/gitconfig: Permission denied.Barred
V
17
  1. Go to C:\Users\<current-user>
  2. check for .git-credentials file
  3. Delete content or modify as per your requirement
  4. Restart your terminal
Vankirk answered 16/7, 2018 at 21:0 Comment(1)
after 2 hrs of searching and hair pulling I replaced the token in .git-credentials file and it worked. thanks @DineshArchduke
T
16

If your credentials are stored in the credential helper (generally the case), the portable way to remove a password persisted for a specific host is to call git credential reject:

  • in one line:

    $ echo "url=https://appharbor.com" | git credential reject
    
  • or interactively:

    $ git credential reject
    protocol=https
    host=gitlab.com
    [email protected]
    • ↵ is the Enter symbol, just hit Enter key twice at the end of input, don't copy/paste it
    • The username doesn't seem recognized by wincred, so avoid to filter by username on Windows

After that, to enter your new password, type git fetch.

https://git-scm.com/docs/git-credential

Tights answered 27/6, 2020 at 10:39 Comment(0)
B
14

Need to login with respective github username and password

To Clear the username and password in windows

Control Panel\User Accounts\Credential Manager

Edit the windows Credential

Remove the existing user and now go to command prompt write the push command it shows a github pop-up to enter the username/email and password .

Now we able to push the code after switching the user.

Borisborja answered 12/2, 2018 at 13:28 Comment(0)
M
12

Remove this line from your .gitconfig file located in the Windows' currently logged-in user folder:

[credential]
helper = !\"C:/Program Files (x86)/GitExtensions/GitCredentialWinStore/git-credential-winstore.exe\"

This worked for me and now when I push to remote it asks for my password again.

Mireielle answered 22/8, 2013 at 9:23 Comment(0)
P
12

In my case, I couldn't find the credentials saved in the Windows Credential Manager (Windows 7).

I was able to reset my credentials by executing

git config --global credential.helper wincred

It was honestly a hail Mary to see if it would wipe out my credentials and it actually worked.

Pinsk answered 22/2, 2017 at 17:53 Comment(1)
This worked for me; I did NOT have an entry in the Credential Manager to delete.Interviewee
Q
10

This approach worked for me and should be agnostic of OS. It's a little heavy-handed, but was quick and allowed me to reenter credentials.

Simply find the remote alias for which you wish to reenter credentials.

$ git remote -v 
origin  https://bitbucket.org/org/~username/your-project.git (fetch)
origin  https://bitbucket.org/org/~username/your-project.git (push)

Copy the project path (https://bitbucket.org/org/~username/your-project.git)

Then remove the remote

$ git remote remove origin

Then add it back

$ git remote add origin https://bitbucket.org/org/~username/your-project.git
Quickie answered 16/7, 2020 at 16:8 Comment(2)
This will work if you added your password and name to the origin. For ex, https://name:[email protected]/repo-url. Then you should remove the origin and add again.Colous
same can be done with just editing local repository (for example, git config -e and chaning url to origin. meddling with removing origin is overkill.Telamon
E
9

For macOS users :

This error appears when you are using multiple Git accounts on the same machine.

Please follow below steps to remove the github.com credentials.

  1. Go to Finder
  2. Go to Applications
  3. Go to Utilities Folder
  4. Open Keychain Access
  5. Select the github.com and Right click on it

Delete "github.com"

Try again to Push or Pull to git and it will ask for the credentials. Enter valid credentials for repository account. Done, now upvote the answer.

Equi answered 4/12, 2018 at 4:18 Comment(0)
R
9

On Windows, at least, git remote show [remote-name] will work, e.g.

git remote show origin
Raffia answered 2/5, 2019 at 19:57 Comment(4)
Not sure why the downvote. It does work. I get stuck with everything else.Raffia
...and I just used it again today, successfully. Every time I change my password at work I need to do this.Raffia
Worked a charm for me.Adviser
Same here. You don't even have to be in a repository directoryCousin
A
9

No answer given worked for me. But here is what worked for me in the end:

rm -rf ~/.git-credentials

That will remove any credentials! When you use a new git command, you will be asked for a password!

Annabal answered 7/1, 2022 at 8:34 Comment(2)
This question has a Windows tag. Your solutiom might work for Linux, but not Windows.Obviate
This works for macOS Ventura.Nihilism
P
7

You can remove the line credential.helper=!github --credentials from the following file C:\Program Files\Git\mingw64\etc\gitconfig in order to remove the credentials for git

Pirandello answered 25/5, 2016 at 4:19 Comment(0)
P
6

Building from @patthoyts's high-voted answer:

His answer uses but doesn't explain local vs. global vs. system configs. The official git documentation for them is here and worth reading.

For example, I'm on Linux, and don't use a system config, so I never use a --system flag, but do commonly need to differentiate between --local and --global configs.

My use case is I've got two Github crendentials; one for work, and one for play.

Here's how I would handle the problem:

$ cd work
# do and commit work
$ git push origin develop
# Possibly prompted for credentials if I haven't configured my remotes to automate that. 
# We're assuming that now I've stored my "work" credentials with git's credential helper.

$ cd ~/play 
# do and commit play
$ git push origin develop                                                                   
remote: Permission to whilei/specs.git denied to whilei.                
fatal: unable to access 'https://github.com/workname/specs.git/': The requested URL returned error: 403

# So here's where it goes down:
$ git config --list | grep cred
credential.helper=store # One of these is for _local_
credential.helper=store # And one is for _global_

$ git config --global --unset credential.helper
$ git config --list | grep cred
credential.helper=store # My _local_ config still specifies 'store'
$ git config --unset credential.helper
$ git push origin develop
Username for 'https://github.com': whilei
Password for 'https://[email protected]':
Counting objects: 3, done.
Delta compression using up to 12 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 1.10 KiB | 1.10 MiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/whilei/specs.git
   b2ca528..f64f065  master -> master

# Now let's turn credential-helping back on:
$ git config --global credential.helper "store"
$ git config credential.helper "store"
$ git config --list | grep cred
credential.helper=store # Put it back the way it was.
credential.helper=store

It's also worth noting that there are ways to avoid this problem altogether, for example, you can use ~/.ssh/config's with associated SSH keys for Github (one for work, one for play) and correspondingly custom-named remote hosts to solve authentication contextualizing too.

Parity answered 21/12, 2018 at 18:42 Comment(0)
C
5

What finally fixed this for me was to use GitHub desktop, go to repository settings, and remove user:pass@ from the repository url. Then, I attempted a push from the command line and was prompted for login credentials. After I put those in everything went back to normal. Both Visual Studio and command line are working, and of course, GitHub desktop.

GitHub Desktop->Repository->Repository Settings->Remote tab

Change Primary Remote Repository (origin) from:

https://pork@[email protected]/MyProject/MyProject.git

To:

https://github.com/MyProject/MyProject.git

Click "Save"

Credentials will be cleared.

Cornall answered 4/8, 2018 at 8:40 Comment(2)
Resetting the origin to the same one from the command line on Windows has solved my issue. I'm using GitLab so I couldn't use GitHub Desktop for this.Monteria
this is really the solution. you use different accounts on different repositories, store credentials locally to repository and no global unsets works for this. here is UI solution, but same can be done with git config -e and changing or deleting credentials from origin urlTelamon
S
5

Update Actually useHttpPath is a git configuration, which should work for all GCMs. Corrected.

Summary of The Original Question

  • working with git on Windows
  • working on multiple repositories on GitHub
  • wrong credentials used for another GitHub repository

Although the title says "Remove credentials", the description leads me to the assumption that you may have multiple accounts on GitHub, e.g. for job-related vs. private projects. (At least that issue made me find this topic.) If so read on, otherwise, ignore the answer, but it may come in handy at some time.

Reason

Git Credential Managers (short GCM) like Microsoft's GCM for Windows store credentials per host by default. This can be verified by checking the Windows Credential Manager (see other answers on how to access it on English, French, and German Windows versions). So working with multiple accounts on the same host (here github.com) is not possible by default.

In October 2020 GCM for Windows got deprecated and superseded by GCM Core. The information here still applies to the new GCM and it should even use the credentials stored by GCM for Windows.

Solution

Configure git to include the full path to the repository as additional information for each credential entry. Also documented on GCM for Windows.
I personally prefer to include the HTTP(S) [repository] path to be able to use a separate account for each and every repository.

For all possible hosts:

git config --global credential.useHttpPath true

For github.com only:

git config --global credential.github.com.useHttpPath true

Have a look at the GCM and git docs and maybe you want to specify something different.

Suttee answered 20/6, 2020 at 22:59 Comment(0)
C
5

Kindly run following command -

git config --global credential.helper cache

and then run any git command like git pull it will ask for username and password. Enter the details and if you want to store your git credentials, run following command -

git config --global credential.helper store
Cytochrome answered 1/11, 2021 at 5:39 Comment(0)
D
4

In our case, clearing the password in the user's .git-credentials file worked.

c:\users\[username]\.git-credentials
Daystar answered 4/5, 2016 at 18:28 Comment(2)
Yes, several other people have stated this numerous times alreadyTrilateral
Duplicate answer with less detailAnana
N
4

For Windows 10, go to below path,

Control Panel\User Accounts\Credential Manager

There will be 2 tabs at this location,

  1. Web credentials and 2. Windows credentials.

Click on Windows credentials tab and here you can see your stored github credentials, under "Generic credentials" heading.

You can remove those from here and try and re-clone - it will ask for username/password now as we have just removed the stored credential from the Windows 10 systems

Normalcy answered 3/3, 2020 at 8:28 Comment(0)
B
4

To add to @ericbn 's https://mcmap.net/q/13723/-remove-credentials-from-git here are sample commands I've embedded in a script I run to update all my passwords whenever they are renewed. It's probably not usable as-is as it's quite specific but it shows real life usage of cmdkey.exe.

⚠ This is a shell script run in cygwin

⚠ This works because I use private git repos that all authenticate with the same password (you probably don't want to loop over with the same credentials, but you may reuse this sample /list command to extract a list of already registered credentials) ⚠

entries=`cmdkey.exe /list: | grep git | sed -r -e 's/^[^:]+:\s*(.*)$/\1/gm'`
for entry in ${entries}
do
    cmdkey.exe "/delete:${entry}"
    cmdkey.exe "/generic:${entry}" "/user:${GIT_USERNAME}" "/pass:${GIT_PASSWORD}"
done
Beatrisbeatrisa answered 21/4, 2020 at 20:10 Comment(0)
S
3

Execute the following command in a PowerShell console to clear Git Credentials Managers for Windows cache:

rm $env:LOCALAPPDATA\GitCredentialManager\tenant.cache

or in Cmd.exe

rm %LOCALAPPDATA%\GitCredentialManager\tenant.cache
Surefire answered 16/4, 2019 at 16:26 Comment(0)
F
3

Try this when nothing as mentioned above is working for you.

git config credential.helper 'cache --timeout=30'

this will remove the cache every 3sec and will ask for username and password.You can re-run the command with increased timeout values.

Frolic answered 3/6, 2019 at 10:39 Comment(0)
E
3

Answer for Mac Devices:

Go to

Applications/Utilities/Keychain Acccess

Search for git.credentials, and delete the git credentials for the desired URL.

Eugeniusz answered 25/2, 2021 at 23:20 Comment(0)
O
2

As Mentioned by Everyone above, This is a Git Credential Manager Issue. Due to permissions, I could not modify my credentials or manipulate the credential manager. I also could not afford to sit password in plain text on pc. A workaround was deleting the remote branch in intellij and re-adding the remote branch. This removes the stored credential and forces refreshing of the credential.

enter image description here

Obelia answered 3/12, 2018 at 18:55 Comment(2)
as you see from other answers, you could simply remove the certificate in your windows certificate store, it's the easiest way. sometimes you can't simply remote the remote as the password is already stored in the certificate cache, and the next time you add the same remote, it will use the cached certificateHoar
I assume you might be using the word "certificate" instead of "credential". Due to policies on my PC; I do not have access to my "credential" store as I described in my post. I could not actually remove them. What invalidated them was removing the remote branch and re-adding it. And NO It does not reuse the cached "credentials".Obelia
M
2

In your project root folder open .git/config. This file has details about remote url and your credentials type.

Your current remote url in this file might be storing credentials. Copy remote url from github and update the url in this config file.

Like below:

[remote "origin"]
    url = [update it]
    fetch = +refs/heads/*:refs/remotes/origin/*
[credential]
    helper = manager

Now when you try to push your code it will ask for credentials. Thanks

Modal answered 4/7, 2020 at 18:6 Comment(0)
B
1

If git config credential.helper returns manager-core (from the cross-platform GCM -- Git Credential Manager Core project), you can:

  • keep this setting as-is

  • remove your credentials using the cross-platform GCM command:

    printf "host=github.com\nusername=xxx\nprotocol=https" | \
      git credential-manager-core erase
    

Check it is gone with:

  printf "host=github.com\nusername=xxx\nprotocol=https" | \
    git credential-manager-core get

(Replace xxx by your GitHub user account name)
(Replace github.com by the actual remote Git repository hosting server: gitlab.com, bitbucket.com, yourOwnServer.com)

If you see a prompt for your credentials, click "Cancel": the previous credentials are gone from the OS underlying secret manager (Windows Credential Manager, Linux libsecret or Mac osxkeychain)

At the next git push, enter your credentials as prompter by the GCM-core credential helper: your new credentials will be stored.

Bickford answered 1/11, 2021 at 11:49 Comment(1)
@Wolfgang Thank you for the edit: lowercase keys are indeed required.Bickford
E
0

If you are authenticated using your key pair, you can deleting or moving your private key, or stopping the key agent and trying.

Efface answered 13/3, 2013 at 9:22 Comment(1)
he's using https, so there's no key involved hereRoan
W
0

On my Win 10, couldn't find Windows Credential Manager nor .git-credentials. What worked was opening Git GUI and pushing the code. It then asked for credentials, which also updated the cached password for my Git Bash.

Wicked answered 14/11, 2022 at 16:24 Comment(0)
D
0

As other answers mention this will work for any operative system

rm -rf ~/.git-credentials

Once that is done, any other command related to git remote (pull, push, fetch, etc...) will ask for credentials again and will work as usual.

Denticulation answered 25/3 at 12:23 Comment(1)
duplicate: stackoverflow.com/questions/15381198/…Freudberg

© 2022 - 2024 — McMap. All rights reserved.