git: 'credential-cache' ist kein git-befehl

264

Ich habe diese Anweisungen genau befolgt , einschließlich des Teils über das Zwischenspeichern von Passwörtern. Es scheint, als ob die Anweisungen falsch sind, denn jedes Mal, wenn ich git push origin masterdiesen Fehler erhalte:

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

... an diesem Punkt bin ich gezwungen, meinen Benutzernamen und mein Passwort einzugeben. Danach wird mir wieder dieselbe Fehlermeldung angezeigt, gefolgt von der Ausgabe von git push.

Hier ist der Inhalt meiner .gitconfig-Datei:

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

Um klar zu sein, nachdem ich Git installiert und Git Bash ausgeführt habe, habe ich genau Folgendes eingegeben:

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

Bitte helfen Sie. Das ist so frustrierend!

Big McLargeHuge
quelle
53
Um die Meldung "git: 'credential-cache' ist kein git-Befehl." Zu entfernen, führen Sie "git config --global --unset credential.helper" aus. Befolgen Sie dann die nachstehenden Anweisungen.
Wallace Kelly
5
@Wally +1 Danke, dein Befehl hat bei mir erst nach dem Entfernen funktioniert --global.
Web_Designer
1
Sie können die Nachricht alternativ entfernen, indem Sie die .git / config-Datei manuell
ändern
FWIW für die das Lesen der verschiedenen Windows - Vorschläge unten, git config credential.helper cache tat Arbeit für mich mit Cygwin git Version 2.13.2.
Flash Sheridan

Antworten:

323

Aus einem Blog fand ich :

"Dieser [Git-Credential-Cache] funktioniert nicht für Windows-Systeme, da der Git-Credential-Cache über einen Unix-Socket kommuniziert."

Git für Windows

Da msysgit von Git für Windows abgelöst wurde, ist die Verwendung von Git für Windows jetzt die einfachste Option. Einige Versionen des Git for Windows-Installationsprogramms (z. B. 2.7.4) verfügen während der Installation über ein Kontrollkästchen, um den Git Credential Manager zu aktivieren. Hier ist ein Screenshot:

Screenshot des Installationsassistenten für Git For Windows 2.7.4

Verwenden Sie immer noch msysgit? Für msysgit-Versionen 1.8.1 und höher

Der wincredHelfer wurde in msysgit 1.8.1 hinzugefügt. Verwenden Sie es wie folgt:

git config --global credential.helper wincred

Für msysgit-Versionen älter als 1.8.1

Laden Sie zuerst git-credential-winstore herunter und installieren Sie es in Ihrem git bin-Verzeichnis.

Stellen Sie als Nächstes sicher, dass sich das Verzeichnis mit git.cmd in Ihrer Umgebungsvariablen Path befindet. Das Standardverzeichnis hierfür ist C: \ Programme (x86) \ Git \ cmd auf einem 64-Bit-System oder C: \ Programme \ Git \ cmd auf einem 32-Bit-System. Eine einfache Möglichkeit, dies zu testen, besteht darin, eine Eingabeaufforderung zu starten und einzugeben git. Wenn Sie keine Liste der Git-Befehle erhalten, ist diese nicht richtig eingerichtet.

Starten Sie abschließend eine Eingabeaufforderung und geben Sie Folgendes ein:

git config --global credential.helper winstore

Oder Sie können Ihre .gitconfig-Datei manuell bearbeiten:

[credential]
    helper = winstore

Sobald Sie dies getan haben, können Sie Ihre Git-Anmeldeinformationen über den Windows-Anmeldeinformations-Manager verwalten, den Sie über die Windows-Systemsteuerung aufrufen können.

Nate Cook
quelle
4
gitcredentialstore.codeplex.com enthält FAQ. Es hat mir geholfen, den Winstore erfolgreich zu installieren. Binäre Abstürze, es sei denn, Sie führen es von git-bash aus.
Ruruskyi
8
Zu Ihrer Information musste ich mit expliziten Administratorrechten installieren. Ohne sie wurde die Fehlermeldung "git: 'credential-winstore' ist kein git-Befehl. Siehe 'git --help'". Meine .gitconfig sieht jetzt auch ein bisschen anders aus, wobei die [Anmeldeinformationszeile] "helper =!" C: \\ Benutzer \\ Malachi \\ AppData \\ Roaming \\ GitCredStore \\ git-credential-winstore.exe '' hat.
Malachi
meins löst eine nicht behandelte Ausnahme aus und stirbt - System.Diagnostics.Process.StartWithShellExecuteEx (ProcessStartInfo startInfo)
Andrew
1
Gibt es einen Grund, warum sie Unix-Sockets in einer plattformübergreifenden Anwendung verwenden würden? Und wenn ja, warum wird git-credential-winstore nicht standardmäßig mit der Windows-Version von Git ausgeliefert?
Domi
3
Das Git-Credential-Winstore-Tool funktioniert bei mir nicht. Früher war es so, aber plötzlich werde ich überall dazu aufgefordert. Ich habe .git-config und den Windows Credential Manager überprüft und alles ist da, was sein sollte. Es funktioniert einfach nicht und ich habe wirklich keine Ahnung warum. :(
Chris McKenzie
30

Erster Lauf git config --global credential.helper wincred

Dann geh zu: CONTROL PANEL\CREDENTIAL MANAGER\WINDOWS CREDENTIAL\GENERIC CREDENTIAL

Klicken Sie dann auf Hinzufügen eines Berechtigungsnachweises in Internet or network address: Hinzufügen git:https://{Benutzername}.github.com

User: {Name}

Password: {Passwort}

Ivandro Ismael Gomes Jao
quelle
2
Credential Manager ist in Benutzerkonten und Familiensicherheit in Windows 7
Casey Murray
1
VIELEN DANK! Ich habe eine Stunde gebraucht, um herauszufinden, wie ich meinen Windows-Anmeldeinformations-Manager reparieren kann, nachdem ich mein Domänenkennwort geändert habe. Heiliger Moly, was für ein Labyrinth.
SadBunny
3
%windir%\explorer.exe shell:::{1206F5F1-0569-412C-8FEC-3204630DFB70}Über die Konsole wird auch der Anmeldeinformations-Manager gestartet.
Jeroen Wiert Pluimers
1
Danke, mein Problem ist behoben :)
Diallo
21

Ich habe dieses Problem bei der Verwendung von AptanaStudio3 unter Windows 7 festgestellt. Das hat mir geholfen:

git config --global credential.helper wincred

Code von hier genommen

Ikrom
quelle
10

Es gibt jetzt eine viel einfachere Möglichkeit, das Git-Passwort-Caching einzurichten, indem Sie unter Windows auf eine kleine Exe doppelklicken. Das Programm basiert immer noch auf git-credential-winstoreder Antwort, die in der Top-Abstimmung erwähnt wurde, obwohl das Projekt von GitHub auf http://gitcredentialstore.codeplex.com/ verschoben wurde.

Sie können die Exe (und eine Binärdatei für Mac) von diesem Blog-Beitrag herunterladen: https://github.com/blog/1104-credential-caching-for-wrist-friendly-git-usage

Saheed
quelle
Dies ist die Antwort, nach der ich gesucht habe. Microsoft hat begonnen, dieses Projekt zu warten. Die Kennwörter werden im Windows-Anmeldeinformationsspeicher gespeichert.
Gordolio
10

Ein ähnlicher Fehler ist 'credential-wincred' is not a git command

Die akzeptierten und beliebten Antworten sind jetzt veraltet ...

wincredist für das Projekt git-credential-winstore, das nicht mehr gepflegt wird .

Es wurde durch Git-Credential-Manager-für-Windows ersetzt , das von Microsoft Open Source verwaltet wird .

Laden Sie die Version als Zip-Datei vom obigen Link herunter und extrahieren Sie den Inhalt nach

\cygwin\usr\libexec\git-core

(oder \cygwin64\usr\libexec\git-corewie es sein mag)

Aktivieren Sie es dann (indem Sie die globale Einstellung festlegen .gitconfig) - führen Sie Folgendes aus:

git config --global credential.helper manager

Wie benutzt man

Es ist keine weitere Konfiguration erforderlich.

Es funktioniert [automatisch], wenn Anmeldeinformationen benötigt werden.

Wenn Sie beispielsweise auf Azure DevOps pushen, wird ein Fenster geöffnet und ein oauth2-Flow initialisiert, um Ihr Token abzurufen.

ref:

TT--
quelle
8

Suchen Sie zuerst die Version, die Sie für GIT verwenden.

mit diesem Befehl: git --version

Wenn Sie eine neuere Version als 1.7.10 haben.

Verwenden Sie dann einfach diesen Befehl.

git config --global credential.helper wincred

Referenz

Sireesh Yarlagadda
quelle
6

Für andere, die auf dieses Problem stoßen, hatte ich das gleiche Problem in Ubuntu (nämlich, dass meine Passwörter nicht zwischengespeichert wurden, obwohl ich die Option richtig eingestellt und den Fehler erhalten hatte git: 'credential-cache' is not a git command.), bis ich herausfand, dass diese Funktion nur verfügbar ist verfügbar in Git 1.7.9 und höher .

Da es sich um eine ältere Version von Ubuntu handelt (Natty; ich bin ein hartnäckiger Gnome 2-Benutzer), war die Version im Repo die Git-Version 1.7.4.1. Ich habe das folgende PPA zum Upgrade verwendet: https://launchpad.net/~git-core/+archive/ppa

Johann
quelle
1
Ich git: 'credential-cache' is not a git command.bekomme immer noch nach dem Upgrade auf Version 2.8.2 unter Windows, obwohl der Cache für Anmeldeinformationen funktioniert! Ich habe dieses Problem wahrscheinlich mit einem git configBefehl erstellt.
Buttle Butkus
1
@ButtleButkus git config ändert entweder ~/.gitconfigoder repo-local .git/config, je nachdem, ob das --globalFlag verwendet wurde. In diesen beiden Dateien finden Sie Informationen zu Anmeldeinformationen.
Johann
5

Für andere, die dieses Problem haben - ich bin hier gelandet, weil ich versucht habe, mit dem Einrichten eines neuen Github-Repositorys vertraut zu werden, aber auf der Setup-Seite funktioniert der Helfer für Anmeldeinformationen nur, wenn Sie ein Repository klonen.

"Tipp: Der Helfer für Anmeldeinformationen funktioniert nur, wenn Sie eine HTTPS-Repository-URL klonen. Wenn Sie stattdessen die SSH-Repository-URL verwenden, werden SSH-Schlüssel zur Authentifizierung verwendet. Dieses Handbuch bietet Hilfe beim Generieren und Verwenden eines SSH-Schlüsselpaars."

Andrew
quelle
4

Ich habe dieses Problem behoben, indem ich den credentialAbschnitt aus der Konfiguration eines bestimmten Projekts entfernt habe:

  • Gerade getippt: git config -e
  • Im Editor habe ich den gesamten Abschnitt entfernt [credential] helper = cache.

Dies entfernte die nervige Nachricht:

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

Pini Cheyni
quelle
1
Ich habe viele Lösungen von oben ausprobiert und dies ist die einzige, die funktioniert hat. Ich bin einfach in meinen .git-Ordner gegangen, habe die Konfigurationsdatei geöffnet und [credential] helper = global gelöscht (ich habe es versehentlich auf "global" gesetzt). Vielen Dank Pini Cheyni.
Filip Savic
1
Ich bin froh, dass ich helfen konnte
Pini Cheyni
3

Mir ist klar, dass ich etwas spät zum Gespräch komme, aber ich habe genau das gleiche Problem festgestellt. In meiner Git-Konfiguration hatte ich zwei Anmeldeinformationen für Einträge…

In meiner .gitconfig-Datei

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

Das Update: Meine .gitconfig-Datei wurde in die folgenden Einstellungen geändert

[credential]
helper = wincred
[credentials]
helper = wincred
Jason Phillips
quelle
0

Wir hatten das gleiche Problem mit unseren Azure DevOps-Repositorys, nachdem unsere Domain geändert wurde, dh von @ xy.com zu @ xyz.com. Um dieses Problem zu beheben, haben wir ein neues persönliches Zugriffstoken mit den folgenden Berechtigungen generiert:

Code: Lesen & Schreiben Verpackung: Lesen

Dann haben wir den Windows-Berechtigungsnachweis-Manager geöffnet und einen neuen generischen Windows-Berechtigungsnachweis mit den folgenden Details hinzugefügt:

Internet- oder Netzwerkadresse: "git: { Projektname } @ dev.azure.com / { Projektname }" - alternativ sollten Sie hier Ihren Git-Repository-Namen verwenden.
Benutzername: "Personal Access Token"
Passwort: { Das generierte Personal Access Token }

Danach funktionierten alle unsere Git-Operationen wieder. Hoffe das hilft jemand anderem!

DeveloperExceptionError
quelle