Aide aux informations d'identification Git - Mettre à jour le mot de passe

198

J'utilise actuellement GitHub sur HTTPS et j'ai installé la dernière version de Git (1.9.0) avec l'aide des informations d'identification Git sur Windows 7.

Lors de la configuration de mon environnement, j'ai dit à git-credentials de se souvenir en permanence de mon nom d'utilisateur et de mon mot de passe.

J'ai récemment mis à jour mon mot de passe GitHub via le site Web et je ne suis plus en mesure de pousser / tirer / récupérer, etc.

Comment procéder pour mettre à jour mon mot de passe sur l'assistant git-credentials sur Windows 7?

Andrew Thomson
la source
6
Simple, utilisez "git config --global credential.helper wincred" et entrez l'ID utilisateur et le mot de passe; alors cela sera stocké pour vous, la prochaine fois que vous changerez votre mot de passe, réexécutez la commande ci-dessus.
Akshay Lokur
@AkshayLokur c'est la bonne réponse.
Ravimallya
Si tout le reste échoue et que vous utilisez TortoiseGit, vous voudrez peut-être essayer une action via cela. Par exemple, une extraction ou une récupération à l'aide de Tortoise vous demandera le mot de passe, que vous pourrez ensuite mettre à jour. Cela semble alors écraser le cache Git Bash, et vous pouvez utiliser bash une fois de plus.
Paul F. Wood

Réponses:

280

Aucune de ces réponses n'a fini par fonctionner pour mon problème d'informations d'identification Git. Voici ce qui a fonctionné si quelqu'un en a besoin (j'utilise Git 1.9 sur Windows 8.1).

Pour mettre à jour vos informations d'identification, accédez à Panneau de configurationGestionnaire d'informations d'identificationInformations d'identification génériques . Recherchez les informations d'identification liées à votre compte Git et modifiez-les pour utiliser le mot de passe mis à jour.

Référence: comment mettre à jour vos informations d'identification Git sous Windows

Notez que pour utiliser le gestionnaire d'informations d'identification Windows pour Git, vous devez configurer l'assistant d'informations d'identification comme suit:

git config --global credential.helper wincred

Si vous avez plusieurs comptes GitHub que vous utilisez pour différents référentiels, vous devez configurer les informations d'identification pour utiliser le chemin complet du référentiel (plutôt que le domaine, qui est la valeur par défaut):

git config --global credential.useHttpPath true
xgo
la source
21
Cela devrait être la réponse acceptée si elle git config --listcontient credential.helper=wincred.
MF
6
A travaillé pour moi - merci - et a également découvert le gestionnaire d'informations d'identification Windows.
rwalter
Ce. changer le mot de passe n'a pas fonctionné mais j'ai supprimé les informations d'identification, puis git push a demandé à nouveau les informations d'identification et cela a fonctionné.
BiAiB
2
Je pense que cela fonctionne aussi pour la fenêtre 8.1 et la fenêtre 10. Dans mon cas: fenêtre 10 Pro, git 2.17
Thinhbk
2
Pour toute personne qui (comme moi) supprime les informations d'identification stockées en espérant une autre invite, mais l'invite ne s'affiche pas. Dans Credentials Manager, vous pouvez ADDun Generic Credentialavec une adresse de git:http://yourserver:port/. Http ou Https est le même, le bit important est le git:au début.
A. Chiesa
101

Lors de ma première tentative de récupération de Git après le changement de mon mot de passe, on m'a dit que ma combinaison nom d'utilisateur / mot de passe n'était pas valide. C'était correct car l'assistant git-credential avait mis en cache mes anciennes valeurs.

Cependant, j'ai tenté un autre git fetch après avoir redémarré mon terminal / invite de commande et cette fois, l'aide aux informations d'identification m'a invité à entrer mon nom d'utilisateur et mon mot de passe GitHub.

Je soupçonne que la demande de récupération initiale de Git a échoué en combinaison avec le redémarrage de mon terminal / invite de commande a résolu cela pour moi.

J'espère que cette réponse aidera quelqu'un d'autre dans une position similaire à l'avenir!

Andrew Thomson
la source
2
Redémarrez simplement Git Bash, il vous demandera une boîte de dialogue pour entrer un nouveau nom d'utilisateur / mot de passe.
Quan
2
Pour mémoire, j'ai pu contourner ce problème en effectuant un autre pull / fetch sans redémarrer ma session Powershell sur Windows 7. Windows m'a demandé mes nouvelles informations d'identification lors de la deuxième tentative.
Bender the Greatest
le redémarrage de la console / application a fait fonctionner "wincred" pour moi. (J'ai dû redémarrer ma console et "Atom" et tout a bien fonctionné)
low_rents
3
Entrer une commande git qui nécessite des informations d'identification une deuxième fois semble le faire, pas seulement git fetch, cela a également fonctionné une seconde git clone.
navigator_
Merci beaucoup! Chaque fois que je change mon mot de passe de domaine, je dois me rappeler comment mettre à jour mes informations d'identification. Git fetch - Cela a fonctionné pour moi!
Alexander Brattsev
74

Solution utilisant la ligne de commande pour Windows, Linux et MacOS

Si vous avez mis à jour votre mot de passe GitHub sur le serveur GitHub, lors de la première tentative de la git fetch/pull/pushcommande, il génère l' échec de l' authentification message d' .

Exécuter la même chose git fetch/pull/push commande une deuxième fois et il vous demandera des informations d'identification (nom d'utilisateur et mot de passe). Entrez le nom d'utilisateur et le nouveau mot de passe mis à jour du serveur GitHub et la connexion réussira.

Même moi, j'ai eu ce problème, et j'ai effectué les étapes ci-dessus et fait !!

Farooque
la source
@ Vincent: quel est le problème que vous rencontrez ??
Farooque
2
Je viens de me répéter à distance: nom d'utilisateur ou mot de passe invalide. fatal: l'authentification a échoué pour
RichMeister
1
@RichMeister: À partir de la deuxième fois, il vous demandera un nom d'utilisateur / mot de passe. Entrez simplement votre nom d'utilisateur / nouveau_mot de passe.
Farooque
3
A travaillé pour moi sur MacOS avec des informations d'identification mises en cache après un changement de mot de passe. Obtenez la première fois 'Échec de l'authentification pour ...'. Tenté à nouveau et a été invité à fournir des informations d'identification, entrez l'ID utilisateur et le nouveau mot de passe, et fonctionne à nouveau
Kevin Hooke
1
C'est la réponse la meilleure / la plus simple
Ryan Boken
74

Si vous êtes un utilisateur Windows, vous pouvez supprimer ou mettre à jour vos informations d'identification dans Credential Manager.

Dans Windows 10, accédez au chemin ci-dessous:

Panneau de configurationTous les éléments du panneau de configuration Gestionnaire d'informations d'identification

Ou recherchez «gestionnaire d'informations d'identification» dans votre section «Rechercher Windows» dans le menu Démarrer.

Ensuite, dans le gestionnaire d'informations d'identification, sélectionnez "Informations d'identification Windows".

Credential Manager affichera de nombreux éléments, y compris vos perspectives et le référentiel GitHub sous "Informations d'identification génériques"

Vous cliquez sur la flèche déroulante sur le côté droit de votre Git: et il affichera des options pour modifier et supprimer. Si vous supprimez, la fenêtre contextuelle d'informations d'identification apparaîtra la prochaine fois que vous récupérerez ou tirerez. Ou vous pouvez directement y modifier les informations d'identification.

Vins
la source
3
Après avoir essayé d'autres options, seule celle-ci a fonctionné pour moi. J'ai trouvé des informations ici: cmatskas.com/how-to-update-your-git-credentials-on-windows
neomib
Remarque: cette commande n'est PAS ACCESSIBLE PAR LE "PANNEAU DE COMMANDE" METRO UI! Vous devez exécuter control.exemanuellement pour voir ce contrôle.
AnrDaemon
Cela a beaucoup aidé! Je ne savais même pas que ces outils existaient.
mâchoire
35

Trouvez d'abord la version que vous utilisez avec la commande Git git --version. Si vous avez une version plus récente que 1.7.10, utilisez simplement cette commande:

git config --global credential.helper wincred

Ensuite, faites le git fetch , puis il vous invite à mettre à jour le mot de passe.

Maintenant, il ne demandera pas le mot de passe plusieurs fois dans Git.

Sireesh Yarlagadda
la source
7
Cela ne répond pas à la question
disklosr
2
@disklosr Oui, c'est le cas. Cela oblige Git à demander le mot de passe mis à jour la prochaine fois que vous effectuez une action à distance.
Nilpo
1
@Nilpo Qu'est-ce qu'une "action à distance" alors? "Git push origin xxx" ne devrait-il pas être une action à distance? Il ne le fait pas. à la place, je reçois à distance: nom d'utilisateur ou mot de passe invalide.
RichMeister
1
Ça a marché pour moi. Après avoir exécuté cette commande. Faites "git fetch", vous serez invité à fournir des informations d'identification, fournissez-le.
Alex
Pourquoi --global? Ne risque-t-on pas de me faire demander à nouveau tous mes référentiels au lieu de celui qui est affecté?
Thomas Weller
29

Il me semble que les réponses ici sont dépassées. Pour moi, sous Windows 10 et Git 2.15.0, cela a fait le travail:

git credential reject
protocol=https
host=github.com
<Empty line here>

Et puis pour définir le nouveau nom d'utilisateur et mot de passe:

git credential fill
protocol=https
host=github.com
<empty line here>

Après cela, si les informations d'identification fonctionnent maintenant sur l'hôte cible souhaité, nous devons utiliser git credential approve comme indiqué dans l' utilisation typique des informations d'identification Git (étape 4), pour indiquer aux assistants d'informations d'identification de marquer les informations d'identification comme approuvées et de les réutiliser dans les connexions futures.

atavio
la source
1
Pour moi, en faisant la git credential fillpièce telle quelle, cela a généré automatiquement l'ancien mauvais mot de passe; J'ai dû définir le nouveau manuellement avec cette commande pour qu'il fonctionne; de toute façon, merci, cette réponse m'a aidé avec ce problème!
Emerson Cardoso
Votez au sommet! Combien de temps perdu à lire des solutions obsolètes. En fait, Git Credential Manager est à blâmer ici, je pense pour avoir à traverser la douleur lorsque les mots de passe de domaine sont tournés.
Janis Veinbergs
1
après fill, ne devrions-nous pas utiliser approve?
Z. Khullah
Sur ma machine git credential rejectne termine jamais
Thomas Weller
@ThomasWeller vous devez appuyer sur Entrée pour y laisser une ligne vide, puis elle se termine.
atavio
19

FWIW, je suis tombé sur ce même problème (et mon patron aussi, donc il est devenu plus intense).

La solution instantanée consiste à supprimer ou à corriger vos entrées Git dans le gestionnaire d'informations d'identification Windows. Vous pouvez avoir du mal à le trouver dans votre version localisée de Windows, mais heureusement, vous pouvez le démarrer à partir de la bonne vieille boîte de dialogue Windows+ Rexécuter avec control keymgr.dllou control /name Microsoft.CredentialManager(ou rundll32.exe keymgr.dll, KRShowKeyMgrsi vous préférez le look classique). Ou mettez-le dans un fichier batch pour vos collègues:cmdkey /delete:git:http://your.git.server.company.com .

Dans Git Credential Manager de Microsoft, il s'agit d' un problème connu qui peut être résolu dès début 2019 (alors ne retenez pas votre souffle).

Jakob
la source
1
Comprendre le gestionnaire d'informations d'identification Windows à l'aide de l'interface utilisateur du panneau de configuration est génial mais devient fastidieux lorsque vous devez mettre à jour sur toutes les machines. Cette commande unique est excellente car elle accomplit la même chose (supprime les informations d'identification non valides existantes), ce qui oblige git à demander à nouveau les informations d'identification la prochaine fois qu'il en aura besoin. Sur Windows Server 2016, la syntaxe de commande pour supprimer les informations d'identification est légèrement différente: cmdkey /delete:git:https://your.git.server.company.com
Rudimentaire
/delete{:<TargetName>}est la syntaxe officielle , mais j'ai trouvé que le raccourci /del <TargetName>fonctionne également, au moins dans Windows 10 (1803).
Jakob
bonne idée d'alias! delpw = !cmdkey /delete:git:$(git remote get-url $1). Utilisation: git delpw origin(ps: / del n'a pas fonctionné ici, Win 10 également)
Z. Khullah
6

Juste cddans le répertoire où vous avez installé git-credential-winstore. Si vous ne savez pas où, exécutez simplement ceci dans Git Bash:

cat ~/.gitconfig

Il devrait imprimer quelque chose ressemblant à:

[credential]
    helper = !'C:\\ProgramFile\\GitCredStore\\git-credential-winstore.exe'

Dans ce cas, votre référentiel est C: \ ProgramFile \ GitCredStore. Une fois que vous êtes dans ce dossier à l'aide de Git Bash ou de la commande Windows, tapez simplement:

git-credential-winstore.exe erase
host=github.com
protocol=https

N'oubliez pas d'appuyer Enterdeux fois après protocol=https.

Luc DUZAN
la source
3

Aucune des solutions actuelles ne fonctionnait pour moi avec git bash 2.26.2. Cela devrait fonctionner dans tous les cas si vous utilisez le gestionnaire d'informations d'identification Windows.

Un problème est que le gestionnaire d'informations d'identification Windows s'exécute pour l'utilisateur connecté. Dans mon cas par exemple, j'exécute git bash avec un clic droit, exécute en tant qu'administrateur. Par conséquent, mes informations d'identification stockées sont dans un gestionnaire d'informations d'identification auquel je ne peux pas accéder avec l'interface graphique de Windows si je ne me connecte pas à Windows en tant qu'administrateur.

Pour résoudre ce problème:

  • Ouvrez un cmd en tant qu'administrateur (ou quel que soit l'utilisateur avec lequel vous exécutez bash)
  • Allez dans windows / system32
  • Tapez cmdkey /list. Vos anciennes informations d'identification devraient apparaître ici, avec une partie qui se lit ... cible: xxx ...
  • Tapez cmdkey /delete:xxx, où xxx est la cible de la ligne précédente

Il devrait vous confirmer que vos informations d'identification ont été supprimées. La prochaine fois que vous effectuerez une opération dans git bash nécessitant une authentification, une fenêtre contextuelle vous demandera vos informations d'identification.

Jorge.V
la source