git: 'credential-cache' n'est pas une commande git

264

J'ai suivi ces instructions à la lettre, y compris la partie sur la mise en cache des mots de passe. Il semble que les instructions soient erronées, car chaque fois que git push origin masterje reçois cette erreur:

git: 'credential-cache' is not a git command. See 'get --help'.

... à quel moment je suis obligé de saisir mon nom d'utilisateur et mon mot de passe. Après cela, je reçois à nouveau le même message d'erreur, suivi de la sortie de git push.

Voici le contenu de mon fichier .gitconfig:

[user]
    name = myusername
    email = [email protected]
[credential]
    helper = cache

Pour être clair, après avoir installé Git et exécuté Git Bash, voici exactement ce que j'ai tapé:

git config --global user.name "myusername"
git config --global user.email "[email protected]"
git config --global credential.helper cache

Veuillez aider. C'est tellement frustrant!

Big McLargeÉnorme
la source
53
Pour supprimer le message, "git: 'credential-cache' n'est pas une commande git.", Exécutez "git config --global --unset credential.helper", puis vous pouvez suivre les instructions ci-dessous.
Wallace Kelly
5
@Wally +1 Merci, votre commande n'a fonctionné pour moi qu'après avoir été supprimée --global.
Web_Designer
Duplication possible de Y a
Michael Freidgeim
1
vous pouvez également supprimer le message en modifiant le fichier .git / config manuellement (c'est-à-dire supprimer les lignes ci-dessous [informations d'identification])
tarikakyol
FWIW pour ceux qui lisent les différentes suggestions Windows ci-dessous, git config credential.helper cache a fonctionné pour moi avec Cygwin git version 2.13.2.
Flash Sheridan

Réponses:

323

À partir d' un blog, j'ai trouvé :

"Ce [git-credential-cache] ne fonctionne pas pour les systèmes Windows car git-credential-cache communique via un socket Unix."

Git pour Windows

Étant donné que msysgit a été remplacé par Git pour Windows, l'utilisation de Git pour Windows est désormais l'option la plus simple. Certaines versions du programme d'installation de Git pour Windows (par exemple 2.7.4) ont une case à cocher lors de l'installation pour activer le gestionnaire d'informations d'identification Git. Voici une capture d'écran:

capture d'écran de l'assistant d'installation de Git pour Windows 2.7.4

Vous utilisez toujours msysgit? Pour les versions msysgit 1.8.1 et supérieures

L' wincredassistant a été ajouté dans msysgit 1.8.1. Utilisez-le comme suit:

git config --global credential.helper wincred

Pour les versions msysgit antérieures à 1.8.1

Tout d'abord, téléchargez git-credential-winstore et installez-le dans votre répertoire git bin.

Ensuite, assurez-vous que le répertoire contenant git.cmd se trouve dans votre variable d'environnement Path. Le répertoire par défaut est C: \ Program Files (x86) \ Git \ cmd sur un système 64 bits ou C: \ Program Files \ Git \ cmd sur un système 32 bits. Un moyen simple de tester cela est de lancer une invite de commande et de taper git. Si vous n'obtenez pas une liste de commandes git, alors elle n'est pas configurée correctement.

Enfin, lancez une invite de commande et tapez:

git config --global credential.helper winstore

Ou vous pouvez modifier votre fichier .gitconfig manuellement:

[credential]
    helper = winstore

Une fois que vous avez fait cela, vous pouvez gérer vos informations d'identification git via le gestionnaire d'informations d'identification Windows que vous pouvez afficher via le panneau de configuration de Windows.

Nate Cook
la source
4
gitcredentialstore.codeplex.com contient la FAQ. Cela m'a aidé à installer Winstore avec succès. Le binaire plante à moins que vous ne l'exécutiez à partir de git-bash.
ruruskyi
8
Pour info, j'ai dû installer avec des droits d'administrateur explicites. Sans cela, j'obtenais l'erreur "git: 'credential-winstore' n'est pas une commande git. Voir 'git --help'". Mon .gitconfig semble maintenant un peu différent également, avec la [ligne d'identification] ayant "helper =! 'C: \\ Users \\ Malachi \\ AppData \\ Roaming \\ GitCredStore \\ git-credential-winstore.exe' '
Malachi
le mien lève une exception non gérée et meurt - System.Diagnostics.Process.StartWithShellExecuteEx (ProcessStartInfo startInfo)
Andrew
1
Y a-t-il une raison pour laquelle ils utiliseraient des sockets Unix dans une application multi-plateforme? Et si oui, pourquoi git-credential-winstore n'est-il pas livré avec la version Windows de Git par défaut?
Domi
3
L'outil git-credential-winstore ne fonctionne pas pour moi. Auparavant, mais soudain, je suis invité partout. J'ai vérifié .git-config et le gestionnaire d'informations d'identification Windows et tout ce qui devrait y être. Cela ne fonctionne tout simplement pas et je ne sais vraiment pas pourquoi. :(
Chris McKenzie
30

Première exécution git config --global credential.helper wincred

Ensuite aller à: CONTROL PANEL\CREDENTIAL MANAGER\WINDOWS CREDENTIAL\GENERIC CREDENTIAL

puis cliquez sur ajouter un identifiant dans Internet or network address: ajouter git:https://{nom d'utilisateur}.github.com

User: {Nom}

Password: {Mot de passe}

Ivandro Ismael Gomes Jao
la source
2
Credential Manager est dans les comptes d'utilisateurs et la sécurité familiale dans Windows 7
Casey Murray
1
MERCI! Il m'a fallu une heure pour découvrir comment réparer mon gestionnaire d'informations d'identification Windows après avoir changé mon mot de passe de domaine. Holy moly, quel labyrinthe.
SadBunny
3
%windir%\explorer.exe shell:::{1206F5F1-0569-412C-8FEC-3204630DFB70}à partir de la console démarre également le gestionnaire d'informations d'identification.
Jeroen Wiert Pluimers
1
Merci, mon problème est résolu :)
Diallo
21

J'ai rencontré ce problème lors de l'utilisation d'AptanaStudio3 sur windows7. Cela m'a aidé:

git config --global credential.helper wincred

Code extrait d' ici

Ikrom
la source
10

Il existe désormais un moyen beaucoup plus simple de configurer la mise en cache des mots de passe Git en double-cliquant sur un petit exe sous Windows. Le programme est toujours basé sur git-credential-winstorementionné par la réponse la plus votée, bien que le projet ait été déplacé de GitHub vers http://gitcredentialstore.codeplex.com/

Vous pouvez télécharger l'exe (et un binaire pour Mac) à partir de ce billet de blog: https://github.com/blog/1104-credential-caching-for-wrist-friendly-git-usage

Saheed
la source
C'est la réponse que je cherchais. Microsoft a commencé à maintenir ce projet. Il stocke les mots de passe dans le magasin d'informations d'identification Windows.
Gordolio
10

Une erreur similaire est 'credential-wincred' is not a git command

Les réponses acceptées et populaires sont désormais obsolètes ...

wincredest pour le projet git-credential-winstore qui n'est plus maintenu .

Il a été remplacé par Git-Credential-Manager-for-Windows maintenu par Microsoft open source .

Téléchargez la version sous forme de fichier zip à partir du lien ci-dessus et extrayez le contenu dans

\cygwin\usr\libexec\git-core

(ou \cygwin64\usr\libexec\git-coretel qu'il peut être)

Ensuite, activez-le (en définissant le global .gitconfig) - exécutez:

git config --global credential.helper manager

Comment utiliser

Aucune autre configuration n'est nécessaire.

Il fonctionne [automatiquement] lorsque des informations d'identification sont nécessaires.

Par exemple, en poussant vers Azure DevOps, il ouvre une fenêtre et initialise un flux oauth2 pour obtenir votre jeton.

réf:

TT--
la source
8

Trouvez d'abord la version que vous utilisez pour GIT.

en utilisant cette commande: git --version

si vous avez une version plus récente que 1.7.10.

Ensuite, utilisez simplement cette commande.

git config --global credential.helper wincred

Référence

Sireesh Yarlagadda
la source
6

Pour le bien des autres qui viennent sur ce problème, j'ai eu ce même problème dans Ubuntu (à savoir que mes mots de passe n'étaient pas mis en cache, malgré avoir défini l'option correctement et obtenu l'erreur git: 'credential-cache' is not a git command.), jusqu'à ce que je découvre que cette fonctionnalité est uniquement disponible dans Git 1.7.9 et supérieur .

Étant sur une ancienne distribution d'Ubuntu (Natty; je suis un utilisateur obstiné de Gnome 2), la version du dépôt était la version 1.7.4.1 de git. J'ai utilisé le PPA suivant pour mettre à niveau: https://launchpad.net/~git-core/+archive/ppa

Johann
la source
1
Je reçois toujours git: 'credential-cache' is not a git command.même après la mise à niveau vers la version 2.8.2 sur Windows, même si le cache des informations d'identification fonctionne! J'ai probablement créé ce problème en utilisant une git configcommande avant.
Buttle Butkus
1
@ButtleButkus git config modifie soit ~/.gitconfigle repo-local .git/config, selon que l' --globalindicateur a été utilisé. Regardez ces deux fichiers pour tout ce qui concerne les informations d'identification.
Johann
5

Pour le bien des autres ayant ce problème - j'ai atterri ici parce que j'ai essayé de devenir mignon avec la façon dont j'ai configuré un nouveau référentiel github, mais selon la page de configuration, l' aide aux informations d'identification ne fonctionne que si vous clonez un référentiel.

"Astuce: l'assistant d'informations d'identification ne fonctionne que lorsque vous clonez une URL de référentiel HTTPS. Si vous utilisez plutôt l'URL de référentiel SSH, les clés SSH sont utilisées pour l'authentification. Ce guide propose de l'aide pour générer et utiliser une paire de clés SSH."

Andrew
la source
4

J'ai résolu ce problème en supprimant la credentialsection de la configuration d'un projet spécifique:

  • Je viens de taper: git config -e
  • Dans l'éditeur, j'ai supprimé toute la section [credential] helper = cache.

Cela a supprimé le message ennuyeux:

git: 'credential-cache' is not a git command. See 'git --help'.

Pini Cheyni
la source
1
J'ai essayé de nombreuses solutions d'en haut et c'est la seule qui a fonctionné. Je suis juste allé dans mon dossier .git, j'ai ouvert le fichier de configuration et j'ai supprimé [credential] helper = global (je l'ai mis sur "global" accidentellement). Merci beaucoup Pini Cheyni.
Filip Savic
1
Je suis content d'avoir pu aider
Pini Cheyni
3

Je me rends compte que je suis un peu en retard dans la conversation, mais j'ai rencontré exactement le même problème Dans ma configuration git, j'avais deux informations d'identification…

Dans mon fichier .gitconfig

[credential]
helper = cached
[credentials]
helper = wincred

Le correctif: a changé mon fichier .gitconfig avec les paramètres ci-dessous

[credential]
helper = wincred
[credentials]
helper = wincred
Jason Phillips
la source
0

Nous avons eu le même problème avec nos référentiels Azure DevOps après le changement de notre domaine, c'est-à-dire de @ xy.com à @ xyz.com. Pour résoudre ce problème, nous avons généré un nouveau jeton d'accès personnel avec les autorisations suivantes:

Code: lecture et écriture Emballage: lecture

Ensuite, nous avons ouvert le gestionnaire d'informations d'identification Windows, ajouté une nouvelle information d'identification générique Windows avec les détails suivants:

Adresse Internet ou réseau: "git: { projectname } @ dev.azure.com / { projectname }" - vous pouvez également utiliser votre nom de référentiel git ici.
Nom d'utilisateur: "Jeton d'accès personnel"
Mot de passe: { Le jeton d'accès personnel généré }

Ensuite, toutes nos opérations git ont de nouveau fonctionné. J'espère que ceci aide quelqu'un d'autre!

DeveloperExceptionError
la source