Supprimer les informations d'identification de Git

624

Je travaille avec plusieurs référentiels, mais dernièrement, je travaillais simplement dans notre référentiel interne et tout était super.

Aujourd'hui, j'ai dû valider et pousser du code dans un autre, mais j'ai des problèmes.

$ 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

Il n'y a rien que je puisse faire, cela ramènerait la saisie du mot de passe.

Comment puis-je réinitialiser les informations d'identification sur mon système afin que Git me demande le mot de passe de ce référentiel?

J'ai essayé:

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

afin de supprimer le mot de passe

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

afin d'éviter le cache des informations d'identification ...

Rien ne semble fonctionner; Quelqu'un a-t-il une meilleure idée?

balexandre
la source
Avez-vous un ~/.netrcdossier?
robinst
2
@robinst c'est une machine Windows, et je ne trouve pas ce fichier, même pas de Git Bash ...
balexandre
@balexandre pour une machine Windows, je préfère utiliser le nouvel assistant d'identification (git 1.8.3) netrc, qui stockerait plusieurs informations d'identification dans un fichier crypté . C'est mieux que d'entrer votre mot de passe à chaque fois pour chaque session, car le cache ne "cache" le mot de passe que pendant un certain temps. Voir un exemple complet ici .
VonC
Je n'ai pas .netrc. J'ai un fichier dans ~ (C: \ Users \ Myself) nommé .git-credentials, mais l'effacer n'a pas fonctionné, je suis toujours connecté à Git Shell. En outre, le Gestionnaire des informations d'identification du Panneau de configuration ne semble rien stocker. Les fichiers de configuration Git locaux et globaux semblent corrects. J'ai hérité mon poste de travail d'un employé qui est parti, il se pourrait donc qu'il ait configuré un mécanisme de mise en cache des informations d'identification peu orthodoxe que je ne sais pas comment désactiver. J'espère que ce comportement N'EST PAS la valeur par défaut de Git Windows. Sur Mac, la mise en cache des informations d'identification est la valeur par défaut, mais au moins elle apparaît dans Keychain Access.
damix911
Une réponse plus complète qui fonctionne également sur Linux, Windows et Mac OS X voir stackoverflow.com/a/39944557/3906760
MrTux

Réponses:

655

Si ce problème survient sur une machine Windows, procédez comme suit.

  • Accédez à Credential Manager
  • Accédez aux informations d'identification Windows
  • Supprimer les entrées sous Generic Credentials
  • Essayez de vous reconnecter. Cette fois, il devrait vous demander le nom d'utilisateur et le mot de passe corrects.

Accédez à Credential Manager

Accédez à Windows Credentials et supprimez les entrées sous Generic Credentials

Venkataramana Madugula
la source
4
Ceci n'est pertinent que si votre credential.helper=manager. Pour tester ce type git config --list. S'il est défini sur, les storeinformations d'identification ne sont pas stockées dans le magasin d'informations d'identification mais sont stockées non chiffrées.
Liam
3
Je n'ai eu qu'à supprimer les informations d'identification nommées git:https://github.comet j'ai été invité à entrer mon nom d'utilisateur / passe la prochaine fois que je clonais un dépôt à l'aide de PyCharm. J'avais plus d'un compte github et le mauvais était mis en cache.
dotcomly
22
Si quelqu'un recherche ceci sur une machine localisée allemande, c'est "Anmeldeinformationsverwaltung" sur le chemin Systemsteuerung\Alle Systemsteuerungselemente\Anmeldeinformationsverwaltung.
davidenke
3
Alternativement, vous pouvez changer l'utilisateur / pass dans le Credential Manager. Cela a aussi fonctionné pour moi
Daniel Lerps
La suppression des informations d'identification a résolu mon 403erreur via Bitbucket.
Eido95
674

Le cache d'informations d'identification Git exécute un processus démon qui met en cache vos informations d'identification en mémoire et les remet à la demande. Donc, tuer votre processus git-credential-cache - démon jette tout cela et entraîne une nouvelle demande de mot de passe si vous continuez à l'utiliser comme option cache.helper.

Vous pouvez également désactiver l'utilisation du cache des informations d'identification Git à l'aide de git config --global --unset credential.helper. Réinitialisez ensuite cela et vous continuerez à disposer des informations d'identification mises en cache pour les autres référentiels (le cas échéant). Vous devrez peut-être également le faire git config --system --unset credential.helpersi cela a été défini dans le fichier de configuration système (par exemple, Git pour Windows 2).

Sous Windows, il serait préférable d'utiliser l'aide du gestionnaire ( git config --global credential.helper manager). Cela stocke vos informations d'identification dans le magasin d'informations d'identification Windows qui possède une interface du Panneau de configuration où vous pouvez supprimer ou modifier vos informations d'identification stockées. Avec cette boutique, vos informations sont sécurisées par votre connexion Windows et peuvent persister sur plusieurs sessions. L' assistant de gestionnaire inclus dans Git pour Windows 2.x a remplacé l' assistant de wincred précédent qui avait été ajouté dans Git pour Windows 1.8.1.1. Un assistant similaire appelé winstore est également disponible en ligne et a été utilisé avec GitExtensions car il offre une interface plus GUI. Le gestionnaire d' aide offre la même interface graphique que winstore .

Extrait de la page de support de Windows 10 détaillant le gestionnaire d'informations d'identification Windows:

Pour ouvrir Credential Manager, saisissez "credential manager" dans la zone de recherche de la barre des tâches et sélectionnez Credential Manager Control panel .

Et puis sélectionnez les informations d' identification Windows pour éditer (= supprimer ou modifier) ​​les informations d'identification git stockées pour une URL donnée.

patthoyts
la source
198
J'ai trouvé le panneau de configuration des informations d'identification Windows Control Panel\User Accounts\Credential Managersous Windows 7
Steve Pitchers
2
La suppression du processus ne laisse-t-elle aucune trace quelque part, afin que le mot de passe soit toujours accessible? Selon le manuel git, ils sont stockés en "texte brut".
Ufos
1
Sous Windows 8.1, les "Windows Credentials" étaient sous Generic Credentials et git: gitlab.com ou votre serveur git de choix.
Jeff
5
Sous Windows 8/10, les paramètres détaillés du compte utilisateur sont situés sous le panneau de contrôle "classique", pas l'application "Paramètres" (interface utilisateur moderne). Juste pour éviter la confusion.
DanielH
1
dans Windows 10 Accédez à Panneau de configuration \ Tous les éléments du Panneau de configuration \ Gestionnaire d'informations d'identification. Il pourrait y avoir un identifiant générique pour GitHub. Vous pouvez y mettre à jour le nom d'utilisateur et le mot de passe.
Eldhose Abraham
156

Saisir à nouveau:

$ git config credential.helper store

Ensuite, vous serez invité à saisir à nouveau vos informations d'identification.

ATTENTION

L'utilisation de cette aide stockera vos mots de passe non cryptés sur le disque

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

aaafly
la source
37
cette commande ne demande pas de saisir à nouveau mes informations d'identification, cette commande ne fait rien
Shirish Herwade
3
@ShirishHerwade essayez git pull, puis vous verrez un écran d'invite
ismailcem
2
@jkokorian Pour annuler cette commande, supprimez les lignes pertinentes de .git/config.
Zenadix du
110

J'ai été confronté au même problème que le PO. Il prenait mes anciennes informations d'identification Git stockées quelque part sur le système et je voulais utiliser Git avec mes nouvelles informations d'identification, j'ai donc exécuté la commande

$ git config --system --list

Cela montrait

credential.helper=manager

Chaque fois que je jouais, git pushil prenait mon ancien nom d'utilisateur que j'avais défini depuis longtemps, et je voulais utiliser un nouveau compte GitHub pour pousser les changements. J'ai découvert plus tard que mes anciennes informations d'identification de compte GitHub étaient stockées sous Panneau de configurationComptes d'utilisateursGestionnaire d'informations d'identificationGérer les informations d'identification Windows .

Gérer les informations d'identification Windows

Je viens de supprimer ces informations d'identification et lorsque je l'ai exécuté, git pushil m'a demandé mes informations d'identification GitHub, et cela a fonctionné comme un charme.

Mourya
la source
Bonne illustration du récent du récent gestionnaire d'informations d'identification Git ( github.com/Microsoft/Git-Credential-Manager-for-Windows ) qui fonctionne en stockant les informations d'identification ( github.com/Microsoft/Git-Credential-Manager-for-Windows/ issues /… ) +1
VonC
1
@VonC Il m'a fallu une journée pour le découvrir car je n'étais pas au courant de ce mécanisme de stockage des informations d'identification.
Mourya
C'est assez récent en effet. Merci de l'avoir mentionné ici.
VonC
C'est probablement la meilleure réponse que celle «acceptée», ce qui implique pour moi de nuancer tous les pouvoirs. Certainement m'a aidé.
VictorLegros
53

Essayez d'utiliser la commande ci-dessous.

git credential-manager

Ici, vous pouvez obtenir diverses options pour gérer vos informations d'identification (consultez l'écran ci-dessous).

Entrez la description de l'image ici

Ou vous pouvez même essayer directement cette commande:

git credential-manager uninstall

Cela recommencera à demander des mots de passe à chaque demande d'interaction avec le serveur.

Himanshu Aggarwal
la source
11
Pourquoi je reçois -git: 'credential-manager' is not a git command. See 'git --help'.
Saikat
2
Je ne sais pas pourquoi cela ne fonctionne pas pour vous, mais même dans la dernière version de git, il est disponible. Veuillez consulter ce lien pour plus d'informations - git-scm.com/book/gr/v2/Git-Tools-Credential-Storage
Himanshu Aggarwal
3
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.(avec le joli U_Uemoji de nulle part :))
jeromej
1
La seule solution qui a fonctionné pour moi sur Windows avec GitBash.
alain.janinm
peut-être un côté, mais j'ai installé git via choco, et cette méthode [de désinstallation] était bonne pour moi pour tirer un dépôt sur un ordinateur déployé sans stocker les informations d'identification
beep_check
32

J'ai trouvé quelque chose qui fonctionnait pour moi. Lorsque j'ai écrit mon commentaire à l'OP, je n'avais pas vérifié le fichier de configuration du système:

git config --system -l

montre un

credential.helper=!github --credentials

ligne. Je le dérange avec

git config --system --unset credential.helper

et maintenant les pouvoirs sont oubliés.

damix911
la source
2
Ankur, vous devrez peut-être exécuter la commande suggérée de manière similaire de 2 à 3 fois si vous avez configuré quelques assistants d'identification. git config --global --unset credential.helperet peut-être juste git config --unset credential.helperdans votre référentiel si vous l'aviez défini de manière explicite.
dragon788
merci pour la solution. Juste un détail: dans mon cas, j'ai dû lancer l'invite de commande en tant qu'administrateur
A.Joly
30

Dans mon cas, Git utilise Windows pour stocker les informations d'identification.

Tout ce que vous avez à faire est de supprimer les informations d'identification stockées dans votre compte Windows:

Menu des informations d'identification Windows

SoliQuiD
la source
1
En quoi cela diffère-t-il de cette réponse ? ou celui-ci ?
Liam
20
git config --list

montrera credential.helper = manager(c'est sur une machine Windows)

Pour désactiver ce nom d'utilisateur / mot de passe mis en cache pour votre dossier git local actuel, entrez simplement

git config credential.helper ""

De cette façon, git demandera un mot de passe à chaque fois, ignorant ce qui est enregistré dans "manager".

Zhe Hu
la source
J'ai l'erreur ci-dessous, git: 'credential-' is not a git command. See 'git --help'.mais pour des raisons de sécurité, je vote pour cette réponse car c'est la seule qui m'a fait demander un nouveau mot de passe. Je me demande, cependant, si cela ne masque pas seulement le problème (le mot de passe est-il vraiment supprimé?)
ribamar
Non: oui rm -rf ~/.git-credentials. Notez que cela peut varier ( git help credential-store)
ribamar
désolé, cela ne fonctionne vraiment pas. il vous demandera à nouveau le mot de passe et le mémorisera à nouveau. supprimerait mon vote positif si cela était autorisé.
ribamar
git config --unset credential.helperefface l'entrée. Cette réponse la définit simplement sur une chaîne vide et produit l'erreur décrite par @ribamar dans les commentaires.
Dark Castle
15

Dans Windows 2003 Server avec "wincred" *, aucune des autres réponses ne m'a aidé. Je devais utiliser cmdkey.

  • cmdkey /list répertorie toutes les informations d'identification stockées.
  • cmdkey /delete:Target supprime les informations d'identification avec le nom "Target".

cmdkey / list;  cmdkey / delete: cible

(* Par "wincred" je veux dire git config --global credential.helper wincred)

ericbn
la source
Oui, cmdkeyest la contrepartie en ligne de commande des informations d'identification Windows décrites dans la réponse choisie.
nicobo
15

Cette erreur apparaît lorsque vous utilisez plusieurs comptes Git sur la même machine.

Si vous utilisez macOS, vous pouvez supprimer les informations d'identification enregistrées de github.com .

Veuillez suivre les étapes ci-dessous pour supprimer les informations d' identification de github.com .

  1. Accès au trousseau ouvert
  2. Trouver github
  3. Sélectionnez le github.com et faites un clic droit dessus
  4. Supprimer "github.com"
  5. Essayez à nouveau de pousser ou de tirer pour git et il vous demandera les informations d'identification.
  6. Entrez des informations d'identification valides pour le compte de référentiel.
  7. Terminé

    entrez la description de l'image ici

Pratik Patel
la source
Merci, cela fonctionne parfaitement sur mac os
babygame0ver
13

Vous devez vous connecter avec github usernameetpassword

Pour effacer le nom d'utilisateur et le mot de passe dans Windows

Panneau de configuration \ Comptes d'utilisateurs \ Gestionnaire d'informations d'identification

Modifier les informations d'identification Windows

Supprimez l'utilisateur existant et maintenant allez à l'invite de commande, écrivez la commande push, il affiche une fenêtre pop-up github pour entrer le username/ emailet password.

Maintenant, nous pouvons pousser le code après avoir changé d'utilisateur.

Amit K
la source
13

Vous avez la même erreur lorsque vous faites un `` git pull '' et c'est ainsi que je l'ai corrigé.

  1. Changer le référentiel en HTTPS
  2. Exécuter la commande git config --system --unset credential.helper
  3. Exécuter la commande git config --system --add credential.helper manager
  4. Commande de test git pull
  5. Entrez les informations d'identification dans la fenêtre de connexion qui apparaît.
  6. Git pull s'est terminé avec succès.
Amer Bashoeb
la source
--système? Et pour --global? Et pas de portée? Que signifie la portée du paramètre?
masterxilo
Juste avec l'étape 1 a résolu mon problème.
zzxwill
11

Supprimez cette ligne de votre fichier .gitconfig situé dans le dossier utilisateur actuellement connecté de Windows:

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

Cela a fonctionné pour moi et maintenant, lorsque je pousse vers la télécommande, il demande à nouveau mon mot de passe.

Liviu M.
la source
11

Vous devez le mettre à jour dans votre gestionnaire d'informations d'identification.

Accédez à Panneau de configuration> Comptes d'utilisateurs> Gestionnaire d'informations d'identification> Informations d'identification Windows. Vous verrez les informations d'identification Git dans la liste (par exemple git: https: //). Cliquez dessus, mettez à jour le mot de passe et exécutez la commande git pull / push depuis votre Git bash et il ne lancera plus de messages d'erreur.

ChiragBhalgami
la source
10

Dans le cas où Git Credential Manager pour Windows est utilisé (ce que font généralement les versions actuelles):

git credential-manager clear

Cela a été ajouté mi-2016 . Pour vérifier si le gestionnaire d'informations d'identification est utilisé:

git config --global credential.helper
→ manager
Simon A. Eugster
la source
10

En utilisant la dernière version de git pour Windows sur Windows 10 Professionnel et j'ai eu un problème similaire où j'ai deux comptes GitHub différents et également un compte Bitbucket, donc les choses sont devenues un peu déroutantes pour VS2017, les extensions git et git bash.

J'ai d'abord vérifié comment git traitait mes informations d'identification avec cette commande (exécutez git bash avec des commandes élevées ou vous obtenez des erreurs):

git config --list

J'ai trouvé l'entrée Credential Manager, j'ai donc cliqué sur le bouton Démarrer> j'ai tapé Credential Manager et j'ai fait un clic gauche sur l'icône de coffre-fort jaune du gestionnaire d'informations d'identification qui a lancé l'application. J'ai ensuite cliqué sur les onglets des informations d'identification Windows et trouvé l'entrée pour mon compte git actuel qui se trouvait être Bit-bucket, j'ai donc supprimé ce compte.

Mais cela n'a pas fait l'affaire, la prochaine étape a donc consisté à supprimer les informations d'identification et je l'ai fait à partir du répertoire du référentiel sur mon ordinateur portable qui contient le projet GitHub que j'essaie de pousser vers la télécommande. J'ai tapé la commande suivante:

git config --system --unset credential.helper

Ensuite, j'ai fait un push git et on m'a demandé un nom d'utilisateur GitHub que j'ai entré (le bon dont j'avais besoin), puis le mot de passe associé et tout a été poussé correctement.

Je ne suis pas sûr de l'ampleur du problème, la plupart des gens travaillent probablement sur le même référentiel, mais je dois travailler sur plusieurs et utiliser différents fournisseurs, donc je peux rencontrer à nouveau ce problème.

Tahir Khalid
la source
travaillé pour moi ..merci
Krishnamoorthy Acharya
8

Dans mon cas, je n'ai pas pu trouver les informations d'identification enregistrées dans le gestionnaire d'informations d'identification Windows (Windows 7).

J'ai pu réinitialiser mes informations d'identification en exécutant

git config --global credential.helper wincred

Honnêtement, c'était une grêle Mary de voir si cela effacerait mes références et cela a vraiment fonctionné.

Jeff LaFay
la source
Cela a fonctionné pour moi; Je n'avais PAS d'entrée à supprimer dans le gestionnaire d'informations d'identification.
bdwakefield
7

Vous pouvez supprimer la ligne credential.helper=!github --credentialsdu fichier suivant C:\Program Files\Git\mingw64\etc\gitconfigafin de supprimer les informations d'identification pour git

Yoan Pumar
la source
7
  1. Aller à C:\Users\<current-user>
  2. vérifier le .git-credentialsfichier
  3. Supprimer le contenu ou modifier selon vos besoins
  4. Redémarrez votre terminal
Dinesh Patil
la source
la seule solution qui a fonctionné pour moi
Wachburn
7

Sur Windows, au moins, git remote show [remote-name]fonctionnera, par exemple

git remote show origin
Jason S
la source
Je ne sais pas pourquoi le downvote. Ça marche. Je suis coincé avec tout le reste.
Jason S
... et je viens de l'utiliser à nouveau aujourd'hui, avec succès. Chaque fois que je change mon mot de passe au travail, je dois le faire.
Jason S
2
A fonctionné un charme pour moi.
IronAces
Pareil ici. Vous n'avez même pas besoin d'être dans un répertoire de dépôt
Nicola Musatti
6

Si vous voulez que git oublie les anciennes informations d'identification enregistrées et ressaisit le nom d'utilisateur et le mot de passe, vous pouvez le faire en utilisant la commande ci-dessous:

git credential-cache exit

Après avoir exécuté la commande ci-dessus, si vous essayez de pousser quoi que ce soit, il fournira une option pour entrer le nom d'utilisateur et le mot de passe.

amitshree
la source
3

Ce qui a finalement résolu cela pour moi était d'utiliser le bureau GitHub, d'aller dans les paramètres du référentiel et de supprimer user: pass @ de l'url du référentiel. Ensuite, j'ai tenté une poussée à partir de la ligne de commande et on m'a demandé des informations de connexion. Après les avoir mis, tout est revenu à la normale. Visual Studio et la ligne de commande fonctionnent, et bien sûr, le bureau GitHub.

Bureau GitHub-> Référentiel-> Paramètres du référentiel-> onglet À distance

Changer le référentiel distant principal (origine) de:

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

À:

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

Cliquez sur "Enregistrer"

Les pouvoirs seront effacés.

Nick Pirocanac
la source
La réinitialisation de l'origine à la même à partir de la ligne de commande sous Windows a résolu mon problème. J'utilise GitLab donc je ne pouvais pas utiliser GitHub Desktop pour cela.
David Vargas
3

Pour les utilisateurs de macOS:

Cette erreur apparaît lorsque vous utilisez plusieurs comptes Git sur la même machine.

Veuillez suivre les étapes ci-dessous pour supprimer les informations d'identification de github.com.

  1. Accéder au Finder
  2. Accédez aux applications
  3. Accédez au dossier Utilitaires
  4. Accès au trousseau ouvert
  5. Sélectionnez le github.com et faites un clic droit dessus

    Supprimer "github.com"

Essayez à nouveau de pousser ou de tirer pour git et il vous demandera les informations d'identification. Entrez des informations d'identification valides pour le compte de référentiel. Terminé

iamsurajdc
la source
3

Pour Windows 10, accédez au chemin ci-dessous,

Panneau de configuration \ Comptes d'utilisateurs \ Gestionnaire d'informations d'identification

Il y aura 2 onglets à cet endroit,

  1. Identifiants Web et 2. Identifiants Windows.

Cliquez sur l'onglet Informations d'identification Windows et ici vous pouvez voir vos informations d'identification github stockées, sous la rubrique "Informations d'identification génériques".

Vous pouvez supprimer ceux d'ici et essayer de recloner - il vous demandera maintenant le nom d'utilisateur / mot de passe car nous venons de supprimer les informations d'identification stockées des systèmes Windows 10

Programmation AAD
la source
2

Pour effacer le cache Git Credentials Managers for Windows:

rm $env:LOCALAPPDATA\GitCredentialManager\tenant.cache

ou

rm %LOCALAPPDATA%\GitCredentialManager\tenant.cache
Chris F Carroll
la source
2

Essayez ceci lorsque rien comme mentionné ci-dessus ne fonctionne pour vous.

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

cela supprimera le cache toutes les 3 secondes et demandera un nom d'utilisateur et un mot de passe. Vous pouvez réexécuter la commande avec des valeurs de délai d'attente augmentées.

manish kumar
la source
1

Dans notre cas, la suppression du mot de passe dans le fichier .git-credentials de l'utilisateur a fonctionné pour nous.

c:\users\[username]\.git-credentials
Tarifs
la source
Oui, plusieurs autres personnes l'ont déjà dit à maintes reprises
Liam
1

Construire à partir de la réponse à haut vote de @ patthoyts ( https://stackoverflow.com/a/15382950/4401322 ):

Sa réponse utilise mais n'explique pas les configurations "locales" vs "globales" vs "système". La documentation officielle git pour eux est ici et mérite d'être lue.

Par exemple, je suis sous Linux et je n'utilise pas de configuration système , donc je n'utilise jamais d' --systemindicateur, mais j'ai généralement besoin de faire la différence entre les configurations --localet --global.

Mon cas d'utilisation est que j'ai deux références Github; un pour le travail et un pour le jeu.

Voici comment je traiterais le problème:

$ 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

Il convient également de noter qu'il existe des moyens d'éviter ce problème, par exemple, vous pouvez utiliser ~/.ssh/configdes clés SSH associées pour Github (une pour le travail, une pour le jeu) et des hôtes distants nommés de manière correspondante pour résoudre l'authentification en contextualisant également.

irbanana
la source
1

Pour ajouter à @ericbn « s https://stackoverflow.com/a/41111629/579827 ici sont des exemples de commandes que j'ai intégré dans un script que je lance à jour tous mes mots de passe chaque fois qu'ils sont renouvelés. Ce n'est probablement pas utilisable tel quel car il est assez spécifique mais il montre l'utilisation réelle de cmdkey.exe.

⚠ Ceci est un script shell exécuté dans cygwin

⚠ Cela fonctionne parce que j'utilise des dépôts git privés qui s'authentifient tous avec le même mot de passe (vous ne voulez probablement pas faire une boucle avec les mêmes informations d'identification, mais vous pouvez réutiliser cet exemple de /listcommande pour extraire une liste des informations d'identification déjà enregistrées) ⚠

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
nicobo
la source
0

Si vous êtes authentifié à l'aide de votre paire de clés, vous pouvez supprimer ou déplacer votre clé privée, ou arrêter l'agent de clé et essayer.

Munim
la source
2
il utilise https, donc il n'y a pas de clé impliquée ici
CharlesB