Git Credential Helper - Passwort aktualisieren

198

Ich verwende derzeit GitHub über HTTPS und habe die neueste Version von Git (1.9.0) zusammen mit dem Git-Anmeldeinformations-Helfer unter Windows 7 installiert.

Beim Einrichten meiner Umgebung habe ich git-credentials angewiesen, sich meinen Benutzernamen und mein Passwort dauerhaft zu merken.

Ich habe kürzlich mein GitHub-Passwort über die Website aktualisiert und kann jetzt nicht mehr pushen / ziehen / holen usw.

Wie würde ich vorgehen, um mein Passwort im git-credentials-Helfer unter Windows 7 zu aktualisieren?

Andrew Thomson
quelle
6
Verwenden Sie einfach "git config --global credential.helper wincred" und geben Sie die Benutzer-ID und das Kennwort ein. Dann wird dies für Sie gespeichert. Wenn Sie das nächste Mal Ihr Passwort ändern, führen Sie den obigen Befehl erneut aus.
Akshay Lokur
@AkshayLokur das ist die richtige Antwort.
Ravimallya
Wenn alles andere fehlschlägt und Sie TortoiseGit verwenden, möchten Sie möglicherweise eine Aktion darüber ausführen. Beispielsweise werden Sie beim Ziehen oder Abrufen mit Tortoise zur Eingabe des Kennworts aufgefordert, das Sie dann aktualisieren können. Dies scheint dann den Git Bash-Cache zu überschreiben, und Sie können bash erneut verwenden.
Paul F. Wood

Antworten:

280

Keine dieser Antworten funktionierte für mein Git-Anmeldeinformationsproblem. Folgendes hat funktioniert, wenn jemand es benötigt (ich verwende Git 1.9 unter Windows 8.1).

Um Ihre Anmeldeinformationen zu aktualisieren, gehen Sie zu SystemsteuerungAnmeldeinformations-ManagerAllgemeine Anmeldeinformationen . Suchen Sie die Anmeldeinformationen für Ihr Git-Konto und bearbeiten Sie sie, um das aktualisierte Kennwort zu verwenden.

Referenz: So aktualisieren Sie Ihre Git-Anmeldeinformationen unter Windows

Beachten Sie, dass Sie zur Verwendung des Windows Credential Manager für Git den Helfer für Anmeldeinformationen wie folgt konfigurieren müssen:

git config --global credential.helper wincred

Wenn Sie mehrere GitHub-Konten haben, die Sie für verschiedene Repositorys verwenden, sollten Sie die Anmeldeinformationen so konfigurieren, dass der vollständige Repository-Pfad verwendet wird (und nicht nur die Domäne, die die Standardeinstellung ist):

git config --global credential.useHttpPath true
xgo
quelle
21
Dies sollte die akzeptierte Antwort sein, wenn sie git config --listenthält credential.helper=wincred.
MF
6
Arbeitete für mich - danke - und lernte auch den Windows-Manager für Anmeldeinformationen kennen.
Rwalter
Dies. Das Ändern des Passworts hat nicht funktioniert, aber ich habe die Anmeldeinformationen gelöscht und dann hat git push erneut nach Anmeldeinformationen gefragt und es hat funktioniert.
BiAiB
2
Ich denke, es funktioniert auch für Fenster 8.1 und Fenster 10. In meinem Fall:
Windows
2
Für alle, die (wie ich) die gespeicherten Anmeldeinformationen entfernen und auf eine weitere Eingabeaufforderung hoffen, die jedoch nicht angezeigt wird. Im Credentials Manager können Sie ADDeine Generic Credentialmit einer Adresse von git:http://yourserver:port/. Http oder Https ist das gleiche, das wichtige Bit ist das git:am Anfang.
A. Chiesa
101

Bei meinem ersten Versuch, Git nach meiner Passwortänderung abzurufen, wurde mir mitgeteilt, dass meine Kombination aus Benutzername und Passwort ungültig ist. Dies war richtig, da der Helfer für Git-Anmeldeinformationen meine alten Werte zwischengespeichert hatte.

Nach dem Neustart meines Terminals / meiner Eingabeaufforderung habe ich jedoch versucht, einen anderen Git-Abruf durchzuführen. Diesmal hat mich der Helfer für Anmeldeinformationen aufgefordert, meinen GitHub-Benutzernamen und mein Kennwort einzugeben.

Ich vermute, dass die anfänglich fehlgeschlagene Git-Abrufanforderung in Kombination mit dem Neustart meines Terminals / meiner Eingabeaufforderung dies für mich behoben hat.

Ich hoffe, diese Antwort hilft in Zukunft allen anderen in einer ähnlichen Position!

Andrew Thomson
quelle
2
Starten Sie Git Bash einfach neu. Daraufhin wird ein Dialogfeld zur Eingabe eines neuen Benutzernamens / Passworts angezeigt.
Quan
2
Um es festzuhalten, ich konnte dies umgehen, indem ich ein weiteres Pull / Fetch durchführte, ohne meine Powershell-Sitzung unter Windows 7 neu zu starten. Windows forderte mich beim zweiten Versuch zu meinen neuen Creds auf.
Bender der Größte
Durch den Neustart der Konsole / App funktionierte "wincred" für mich. (Ich musste meine Konsole und "Atom" neu starten und alles hat gut funktioniert)
low_rents
3
Die Eingabe eines Git-Befehls, für den ein zweites Mal Anmeldeinformationen erforderlich sind, scheint dies nicht nur zu tun git fetch, sondern auch für eine Sekunde git clone.
navigator_
vielen Dank! Jedes Mal, wenn ich mein Domain-Passwort ändere, muss ich daran denken, wie ich meine Anmeldeinformationen aktualisiere. Git-Abruf - Es hat bei mir funktioniert!
Alexander Brattsev
74

Lösung über die Befehlszeile für Windows, Linux und MacOS

Wenn Sie Ihr GitHub-Kennwort auf dem GitHub-Server aktualisiert haben, wird beim ersten Versuch des git fetch/pull/pushBefehls die Meldung " Authentifizierung fehlgeschlagen" generiert .

Führen Sie denselben git fetch/pull/pushBefehl ein zweites Mal aus und Sie werden zur Eingabe von Anmeldeinformationen (Benutzername und Kennwort) aufgefordert. Geben Sie den Benutzernamen und das neue aktualisierte Passwort des GitHub-Servers ein und die Anmeldung ist erfolgreich.

Sogar ich hatte dieses Problem und ich habe die obigen Schritte ausgeführt und fertig !!

Farooque
quelle
@ Vincent: Was ist das Problem, das du bekommst?
Farooque
2
Ich bekomme nur wiederholt Remote: Ungültiger Benutzername oder Passwort. fatal: Authentifizierung fehlgeschlagen für
RichMeister
1
@RichMeister: Ab dem zweiten Mal wird nach Benutzername / Passwort gefragt. Geben Sie einfach Ihren Benutzernamen / Ihr neues Passwort ein.
Farooque
3
Arbeitete für mich unter MacOS mit zwischengespeicherten Anmeldeinformationen nach einer Kennwortänderung. Zum ersten Mal 'Authentifizierung fehlgeschlagen für ...'. Erneut versucht und wurde aufgefordert, Anmeldeinformationen einzugeben, Benutzer-ID und neues Passwort einzugeben und jetzt wieder zu arbeiten
Kevin Hooke
1
Dies ist die beste / einfachste Antwort
Ryan Boken
73

Wenn Sie ein Windows-Benutzer sind, können Sie Ihre Anmeldeinformationen im Anmeldeinformations-Manager entweder entfernen oder aktualisieren.

Gehen Sie in Windows 10 zum folgenden Pfad:

SystemsteuerungAlle Elemente der SystemsteuerungAnmeldeinformations-Manager

Oder suchen Sie in Ihrem Abschnitt "Windows durchsuchen" im Startmenü nach "Anmeldeinformations-Manager".

Wählen Sie dann im Anmeldeinformations-Manager "Windows-Anmeldeinformationen" aus.

Der Credential Manager zeigt unter "Allgemeine Anmeldeinformationen" viele Elemente an, einschließlich Ihres Outlooks und des GitHub-Repositorys.

Sie klicken auf den Dropdown-Pfeil auf der rechten Seite Ihres Git: und es werden Optionen zum Bearbeiten und Entfernen angezeigt. Wenn Sie entfernen, wird das Popup-Fenster für Anmeldeinformationen beim nächsten Abrufen oder Abrufen beim nächsten Mal angezeigt. Oder Sie können die Anmeldeinformationen dort direkt bearbeiten.

Vins
quelle
3
Nachdem ich andere Optionen ausprobiert hatte, funktionierte nur diese für mich. Ich fand Informationen hier: cmatskas.com/how-to-update-your-git-credentials-on-windows
neomib
Hinweis: Diese Steuerung ist über die METRO-Benutzeroberfläche "CONTROL PANEL" NICHT zugänglich! Sie müssen control.exemanuell ausgeführt werden, um dieses Steuerelement anzuzeigen.
AnrDaemon
Das hat sehr geholfen! Ich wusste nicht einmal, dass es diese Tools gibt.
Kiefer
35

Suchen Sie zuerst die Version, die Sie mit dem Git-Befehl verwenden git --version. Wenn Sie eine neuere Version als 1.7.10 haben, verwenden Sie einfach diesen Befehl:

git config --global credential.helper wincred

Führen Sie dann das aus git fetch, und Sie werden aufgefordert, das Kennwort zu aktualisieren.

Jetzt wird das Passwort in Git nicht mehrmals abgefragt.

Sireesh Yarlagadda
quelle
6
Dies beantwortet nicht die Frage
disklosr
2
@disklosr Ja, das tut es. Es zwingt Git, beim nächsten Ausführen einer Remote-Aktion zur Eingabe des aktualisierten Kennworts aufzufordern.
Nilpo
1
@Nilpo Was ist dann eine "Fernaktion"? Sollte "git push origin xxx" nicht eine Remote-Aktion sein? Es macht es nicht. stattdessen bekomme ich remote: Ungültiger Benutzername oder Passwort.
RichMeister
1
Es hat bei mir funktioniert. Nach dem Ausführen dieses Befehls. Wenn Sie "git fetch" ausführen, werden Sie aufgefordert, Anmeldeinformationen einzugeben. Geben Sie diese ein.
Alex
Warum --global? Riskiere ich nicht, erneut nach allen meinen Repositories gefragt zu werden, anstatt nur nach dem betroffenen?
Thomas Weller
29

Es scheint mir, dass die Antworten hier veraltet sind. Für mich unter Windows 10 und Git 2.15.0 hat dies den Job gemacht:

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

Und dann, um den neuen Benutzernamen und das neue Passwort festzulegen:

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

Wenn die Anmeldeinformationen jetzt auf dem gewünschten Zielhost funktionieren, sollten wir - git credential approvewie in der typischen Verwendung von Git-Anmeldeinformationen erwähnt (Schritt 4) - die Anmeldeinformationshelfer anweisen, die Anmeldeinformationen als genehmigt zu markieren und sie in zukünftigen Verbindungen wiederzuverwenden.

atavio
quelle
1
Wenn ich den git credential fillTeil so mache, wie er ist, wird automatisch das alte falsche Passwort generiert. Ich musste den neuen manuell mit diesem Befehl einstellen, damit er funktioniert. Trotzdem, danke, diese Antwort hat mir bei diesem Problem geholfen!
Emerson Cardoso
Upvote nach oben! Wie viel Zeit damit verschwendet, veraltete Lösungen zu lesen. Eigentlich ist Git Credential Manager hier schuld daran, dass ich beim Drehen von Domain-Passwörtern Schmerzen haben muss.
Janis Veinbergs
1
fillsollten wir danach nicht verwenden approve?
Z. Khullah
Auf meiner Maschine git credential rejectnie abgeschlossen
Thomas Weller
@ThomasWeller Sie müssen die Eingabetaste drücken, um dort eine leere Zeile zu hinterlassen. Dann wird der Vorgang abgeschlossen.
Atavio
19

FWIW, ich bin über genau dieses Problem gestolpert (und mein Chef auch, also wurde es intensiver).

Die sofortige Lösung besteht darin, Ihre Git-Einträge im Windows Credential Manager zu löschen oder zu korrigieren. Möglicherweise fällt es Ihnen schwer, es in Ihrer lokalisierten Windows-Version zu finden, aber zum Glück können Sie es über den guten alten Windows+ Rausgeführten Dialog mit control keymgr.dlloder starten control /name Microsoft.CredentialManager(oder rundll32.exe keymgr.dll, KRShowKeyMgrwenn Sie den klassischen Look bevorzugen). Oder legen Sie dies in eine Batch-Datei für Ihre Kollegen : cmdkey /delete:git:http://your.git.server.company.com.

Im Git Credential Manager von Microsoft ist dies ein bekanntes Problem , das möglicherweise bereits Anfang 2019 behoben wird (halten Sie also nicht den Atem an).

Jakob
quelle
1
Das Verständnis des Windows-Anmeldeinformations-Managers mithilfe der Benutzeroberfläche der Systemsteuerung ist großartig, wird jedoch mühsam, wenn Sie auf allen Computern aktualisieren müssen. Dieser einzelne Befehl ist großartig, da er dasselbe bewirkt (die vorhandenen ungültigen Anmeldeinformationen entfernt), wodurch git gezwungen wird, die Anmeldeinformationen beim nächsten Mal erneut anzufordern, wenn sie benötigt werden. Unter Windows Server 2016 unterscheidet sich die Befehlssyntax zum Entfernen von Anmeldeinformationen geringfügig: cmdkey /delete:git:https://your.git.server.company.com
Rudimentär
/delete{:<TargetName>}ist die offizielle Syntax , aber ich habe festgestellt, dass die Verknüpfung /del <TargetName>auch funktioniert, zumindest in Windows 10 (1803).
Jakob
tolle Idee für einen Alias! delpw = !cmdkey /delete:git:$(git remote get-url $1). Verwendung: git delpw origin(ps: / del hat hier nicht funktioniert, Win 10 auch)
Z. Khullah
6

Nur cdin dem Verzeichnis, in dem Sie git-credential-winstore installiert haben. Wenn Sie nicht wissen, wo, führen Sie dies einfach in Git Bash aus:

cat ~/.gitconfig

Es sollte etwas drucken, das aussieht wie:

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

In diesem Fall lautet Ihr Repository C: \ ProgramFile \ GitCredStore. Wenn Sie sich mit Git Bash oder dem Windows-Befehl in diesem Ordner befinden, geben Sie einfach Folgendes ein:

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

Vergessen Sie nicht, danach Enterzweimal zu drücken protocol=https.

Luc DUZAN
quelle
2

Keine der aktuellen Lösungen hat mit git bash 2.26.2 für mich funktioniert. Dies sollte in jedem Fall funktionieren, wenn Sie den Windows-Manager für Anmeldeinformationen verwenden.

Ein Problem ist, dass der Windows-Manager für Anmeldeinformationen für den angemeldeten Benutzer ausgeführt wird. In meinem Fall starte ich beispielsweise git bash mit einem Rechtsklick und führe es als Administrator aus. Daher befinden sich meine gespeicherten Anmeldeinformationen in einem Anmeldeinformations-Manager, auf den ich mit der Windows-Benutzeroberfläche nicht zugreifen kann, wenn ich mich nicht als Administrator bei Windows anmelde.

Um dies zu beheben:

  • Öffnen Sie ein Cmd als Administrator (oder einen beliebigen Benutzer, mit dem Sie bash ausführen).
  • Gehen Sie zu Windows / System32
  • Typ cmdkey /list. Ihre alten Anmeldeinformationen sollten hier mit einem Teil angezeigt werden, der lautet ... Ziel: xxx ...
  • Geben Sie ein cmdkey /delete:xxx, wobei xxx das Ziel aus der vorherigen Zeile ist

Es sollte Ihnen bestätigen, dass Ihre Anmeldeinformationen entfernt wurden. Wenn Sie das nächste Mal eine Operation in Git Bash ausführen, für die eine Authentifizierung erforderlich ist, werden Sie in einem Popup nach Ihren Anmeldeinformationen gefragt.

Jorge.V
quelle