Entfernen Sie die Anmeldeinformationen von Git


623

Ich arbeite mit mehreren Repositories, aber in letzter Zeit habe ich nur in unserem internen Repository gearbeitet und alles war großartig.

Heute musste ich Code festschreiben und in einen anderen verschieben, aber ich habe einige Probleme.

$ git push appharbor master
error: The requested URL returned error: 403 while accessing https://gavekortet@appharbor.com/mitivo.git/info/refs?service=git-receive-pack
fatal: HTTP request failed

Ich kann nichts tun, was die Passworteingabe erneut bringen würde.

Wie kann ich die Anmeldeinformationen auf meinem System zurücksetzen, damit Git mich nach dem Kennwort dieses Repositorys fragt?

Ich habe versucht:

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

um das Passwort zu deaktivieren

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

um den Cache für Anmeldeinformationen zu vermeiden ...

Nichts scheint zu funktionieren; Hat jemand eine bessere Idee?


Hast du eine ~/.netrcdatei
Robinst

2
@robinst es ist eine Windows-Maschine, und ich kann diese Datei nicht finden, nicht einmal von Git Bash ...
Balexandre

@balexandre Für einen Windows-Computer bevorzuge ich die Verwendung des neuen Hilfsprogramms (git 1.8.3) netrc, mit dem mehrere Anmeldeinformationen in einer verschlüsselten Datei gespeichert werden. Es ist besser, als jedes Mal für jede Sitzung Ihr Passwort einzugeben, da der Cache das Passwort nur für eine bestimmte Zeit "zwischenspeichert". Ein vollständiges Beispiel finden Sie hier .
VonC

Ich habe keine .netrc. Ich habe eine Datei in ~ (C: \ Users \ Myself) mit dem Namen .git-credentials, aber das Löschen hat nicht funktioniert. Ich bin immer noch bei Git Shell angemeldet. Außerdem scheint der Anmeldeinformations-Manager der Systemsteuerung nichts zu speichern. Lokale und globale Git-Konfigurationsdateien scheinen in Ordnung zu sein. Ich habe meine Workstation von einem Mitarbeiter geerbt, der gegangen ist. Es kann also sein, dass er einen unorthodoxen Caching-Mechanismus für Anmeldeinformationen eingerichtet hat, von dem ich keine Ahnung habe, wie ich ihn deaktivieren soll. Ich hoffe, dieses Verhalten ist NICHT die Standardeinstellung von Git Windows. Unter Mac ist das Zwischenspeichern von Anmeldeinformationen die Standardeinstellung, wird jedoch zumindest im Schlüsselbundzugriff angezeigt.
Damix911

Eine ausführlichere Antwort, die auch unter Linux, Windows und Mac OS X funktioniert, finden
MrTux

Antworten:


654

Wenn dieses Problem auf einem Windows-Computer auftritt, gehen Sie wie folgt vor.

  • Gehen Sie zu Credential Manager
  • Gehen Sie zu Windows-Anmeldeinformationen
  • Löschen Sie die Einträge unter Allgemeine Anmeldeinformationen
  • Versuchen Sie erneut, eine Verbindung herzustellen. Dieses Mal sollten Sie aufgefordert werden, den richtigen Benutzernamen und das richtige Passwort einzugeben.

Gehen Sie zu Credential Manager

Gehen Sie zu Windows-Anmeldeinformationen und löschen Sie die Einträge unter Allgemeine Anmeldeinformationen


4
Dies ist nur relevant, wenn Ihre credential.helper=manager. Um diesen Typ zu testen git config --list. Wenn dies festgelegt ist, werden storeAnmeldeinformationen nicht im Anmeldeinformationsspeicher gespeichert, sondern unverschlüsselt.
Liam

3
Ich musste nur den angegebenen Berechtigungsnachweis löschen git:https://github.comund wurde aufgefordert, meinen Benutzernamen / Pass einzugeben, wenn ich das nächste Mal ein Repo mit PyCharm geklont habe. Ich hatte mehr als einen Github-Account und der falsche wurde zwischengespeichert.
Dotcomly

22
Wenn jemand dies auf einem deutsch lokalisierten Computer sucht, ist es "Anmeldeinformationsverwaltung" auf dem Pfad Systemsteuerung\Alle Systemsteuerungselemente\Anmeldeinformationsverwaltung.
Davidenke

3
Alternativ können Sie den Benutzer / Pass in der ändern Credential Manager. Das hat auch bei mir funktioniert
Daniel Lerps

Das Löschen der Anmeldeinformationen hat meinen 403Fehler über Bitbucket behoben .
Eido95

673

Der Git-Anmeldeinformations-Cache führt einen Daemon-Prozess aus, der Ihre Anmeldeinformationen im Speicher zwischenspeichert und bei Bedarf weitergibt. Wenn Sie also Ihren git-credential-cache - Daemon-Prozess beenden, werden all diese Dinge weggeworfen und Sie werden erneut zur Eingabe Ihres Kennworts aufgefordert, wenn Sie dies weiterhin als Option cache.helper verwenden.

Sie können auch die Verwendung des Git-Anmeldeinformations-Caches mit deaktivieren git config --global --unset credential.helper. Setzen Sie dies dann zurück, und Sie haben weiterhin die zwischengespeicherten Anmeldeinformationen für andere Repositorys verfügbar (falls vorhanden). Möglicherweise müssen Sie auch tungit config --system --unset credential.helper wenn dies in der Systemkonfigurationsdatei festgelegt wurde (z. B. Git für Windows 2).

Unter Windows ist es möglicherweise besser, den Manager- Helfer ( git config --global credential.helper manager) zu verwenden. Dadurch werden Ihre Anmeldeinformationen im Windows-Anmeldeinformationsspeicher gespeichert, der über eine Systemsteuerungsoberfläche verfügt, über die Sie Ihre gespeicherten Anmeldeinformationen löschen oder bearbeiten können. Mit diesem Speicher werden Ihre Daten durch Ihre Windows-Anmeldung geschützt und können über mehrere Sitzungen hinweg bestehen bleiben. Der in Git für Windows 2.x enthaltene Manager- Helfer hat den früheren Wincred- Helfer ersetzt, der in Git für Windows 1.8.1.1 hinzugefügt wurde. Ein ähnlicher Helfer namens winstore ist auch online verfügbar und wurde mit GitExtensions verwendet, da er eine GUI-gesteuerte Oberfläche bietet. Der Manager- Helfer bietet dieselbe GUI-Oberfläche wie der Winstore .

Auszug aus der Windows 10-Support-Seite mit detaillierten Angaben zum Windows-Manager für Anmeldeinformationen:

Geben Sie zum Öffnen des Anmeldeinformations-Managers "Anmeldeinformations-Manager" in das Suchfeld in der Taskleiste ein und wählen Sie die Systemsteuerung für den Anmeldeinformations-Manager aus .

Wählen Sie dann Windows-Anmeldeinformationen aus , um die gespeicherten Git-Anmeldeinformationen für eine bestimmte URL zu bearbeiten (= zu entfernen oder zu ändern).


197
Ich fand das Windows Credential Control Panel Control Panel\User Accounts\Credential Managerunter Windows 7
Steve Pitchers

2
Hinterlässt das Beenden des Prozesses keine Spuren, sodass weiterhin auf das Kennwort zugegriffen werden kann? Laut Git-Handbuch werden sie im "Klartext" gespeichert.
Ufos

1
Unter Windows 8.1 befanden sich die "Windows-Anmeldeinformationen" unter "Allgemeine Anmeldeinformationen" und "git: gitlab.com" oder der Git-Server Ihrer Wahl.
Jeff

5
Unter Windows 8/10 befinden sich die detaillierten Benutzerkontoeinstellungen unter der "klassischen" Systemsteuerung, nicht unter der App "Einstellungen" (moderne Benutzeroberfläche). Nur um Verwirrung zu vermeiden.
DanielH

1
Gehen Sie in Windows 10 zu Systemsteuerung \ Alle Elemente der Systemsteuerung \ Anmeldeinformations-Manager. Es könnte einen generischen Berechtigungsnachweis für GitHub geben. Dort können Sie den Benutzernamen und das Passwort aktualisieren.
Eldhose Abraham

155

Retype:

$ git config credential.helper store

Anschließend werden Sie aufgefordert, Ihre Anmeldeinformationen erneut einzugeben.

WARNUNG

Wenn Sie diesen Helfer verwenden, werden Ihre Passwörter unverschlüsselt auf der Festplatte gespeichert

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


35
Dieser Befehl fordert nicht auf, meine Anmeldeinformationen erneut einzugeben. Dieser Befehl führt nichts aus
Shirish Herwade,

3
@ ShirishHerwade versuchen Git Pull, dann sehen Sie Eingabeaufforderung Bildschirm
ismailcem

2
@jkokorian Um diesen Befehl rückgängig zu machen, löschen Sie die entsprechenden Zeilen aus .git/config.
Zenadix

110

Ich hatte das gleiche Problem wie das OP. Es wurden meine alten Git-Anmeldeinformationen verwendet, die irgendwo auf dem System gespeichert waren, und ich wollte Git mit meinen neuen Anmeldeinformationen verwenden, also habe ich den Befehl ausgeführt

$ git config --system --list

Es zeigte

credential.helper=manager

Wann immer ich auftrat git push, nahm ich meinen alten Benutzernamen, den ich lange zurückgesetzt hatte, und ich wollte ein neues GitHub-Konto verwenden, um Änderungen zu pushen. Später stellte ich fest, dass meine alten Anmeldeinformationen für das GitHub-Konto unter SystemsteuerungBenutzerkontenAnmeldeinformations-ManagerWindows-Anmeldeinformationen verwalten gespeichert waren .

Windows-Anmeldeinformationen verwalten

Ich habe gerade diese Anmeldeinformationen entfernt und als ich sie ausgeführt git pushhabe, habe ich nach meinen GitHub-Anmeldeinformationen gefragt, und es hat wie ein Zauber funktioniert.


Gutes Beispiel für den aktuellen Git Credential Manager ( github.com/Microsoft/Git-Credential-Manager-for-Windows ), der durch Speichern von Anmeldeinformationen ( github.com/Microsoft/Git-Credential-Manager-for-Windows/ ) funktioniert. Ausgaben /… ) +1
VonC

1
@VonC Ich habe einen Tag gebraucht, um das herauszufinden, da mir dieser Mechanismus zum Speichern von Anmeldeinformationen nicht bekannt war.
Mourya

Es ist in der Tat ziemlich neu. Vielen Dank, dass Sie es hier erwähnt haben.
VonC

Dies ist wahrscheinlich die bessere Antwort als die "akzeptierte", was für mich bedeutet, alle Anmeldeinformationen zu vernichten. Hat mir auf jeden Fall geholfen.
VictorLegros

52

Versuchen Sie es mit dem folgenden Befehl.

git credential-manager

Hier erhalten Sie verschiedene Optionen zum Verwalten Ihrer Anmeldeinformationen (siehe folgenden Bildschirm).

Geben Sie hier die Bildbeschreibung ein

Oder Sie können diesen Befehl sogar direkt ausprobieren:

git credential-manager uninstall

Dadurch werden bei jeder Serverinteraktionsanforderung erneut Kennwörter abgefragt.


10
Warum git: 'credential-manager' is not a git command. See 'git --help'.
bekomme

2
Ich bin mir nicht sicher, warum es bei Ihnen nicht funktioniert, aber selbst in der neuesten Git-Version ist es verfügbar. Weitere Informationen finden Sie unter diesem Link - 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.(mit dem schönen U_UEmoji aus dem Nichts :))
Jeromej

1
Die einzige Lösung, die unter GitBash unter Windows für mich funktioniert hat.
Alain.janinm

Vielleicht beiseite, aber ich habe git via choco installiert, und diese [Deinstallations-] Methode war gut für mich, um ein Repo auf einem bereitgestellten Computer
abzurufen,

32

Ich habe etwas gefunden, das für mich funktioniert hat. Als ich meinen Kommentar an das OP schrieb, konnte ich die Systemkonfigurationsdatei nicht überprüfen:

git config --system -l

zeigt ein

credential.helper=!github --credentials

Linie. Ich habe es mit deaktiviert

git config --system --unset credential.helper

und jetzt sind die Anmeldeinformationen vergessen.


2
Ankur, Sie müssen den vorgeschlagenen Befehl möglicherweise 2-3 Mal auf ähnliche Weise ausführen, wenn Sie einige Helfer für Anmeldeinformationen konfiguriert haben. git config --global --unset credential.helperund vielleicht nur git config --unset credential.helperin Ihrem Repository, wenn Sie es dort explizit festgelegt hatten.
Dragon788

Danke für die Lösung. Nur ein Detail: In meinem Fall musste ich die Eingabeaufforderung als Administrator
starten

30

In meinem Fall verwendet Git Windows zum Speichern von Anmeldeinformationen.

Sie müssen lediglich die in Ihrem Windows-Konto gespeicherten Anmeldeinformationen entfernen:

Windows-Menü für Anmeldeinformationen


1
Wie unterscheidet sich das von dieser Antwort ? oder dieser ?
Liam

20
git config --list

wird angezeigt credential.helper = manager(dies ist auf einem Windows-Computer)

Geben Sie einfach ein, um diesen zwischengespeicherten Benutzernamen / das zwischengespeicherte Kennwort für Ihren aktuellen lokalen Git-Ordner zu deaktivieren

git config credential.helper ""

Auf diese Weise fordert git jedes Mal zur Eingabe eines Kennworts auf und ignoriert, was in "manager" gespeichert ist.


Ich habe den folgenden Fehler git: 'credential-' is not a git command. See 'git --help'., aber aus Sicherheitsgründen stimme ich dieser Antwort zu, da sie die einzige ist, die mich zur Eingabe eines neuen Passworts veranlasst hat. Ich frage mich jedoch, ob dies nicht nur das Problem maskiert (wird das Passwort wirklich entfernt?)
Ribamar

Nein, rm -rf ~/.git-credentialshabe. Beachten Sie, dass es variieren kann ( git help credential-store)
Ribamar

Entschuldigung, das funktioniert wirklich nicht. Es wird erneut nach dem Passwort gefragt und es erneut gespeichert. würde meine Gegenstimme entfernen, wenn erlaubt.
Ribamar

git config --unset credential.helperlöscht den Eintrag. Diese Antwort setzt es einfach auf eine leere Zeichenfolge und erzeugt den Fehler, den @ribamar in den Kommentaren beschrieben hat.
Dark Castle

15

In Windows 2003 Server mit "wincred" * hat mir keine der anderen Antworten geholfen. Ich musste benutzen cmdkey.

  • cmdkey /list listet alle gespeicherten Anmeldeinformationen auf.
  • cmdkey /delete:Target löscht den Berechtigungsnachweis mit dem Namen "Ziel".

cmdkey / list;  cmdkey / delete: Ziel

(* Mit "wincred" meine ich git config --global credential.helper wincred)


Ja, cmdkeyist das Kommandozeilen-Gegenstück zu den in der ausgewählten Antwort beschriebenen Windows-Anmeldeinformationen.
Nicobo

15

Dieser Fehler tritt auf, wenn Sie mehrere Git-Konten auf demselben Computer verwenden.

Wenn Sie macOS verwenden, können Sie die gespeicherten Anmeldeinformationen von github.com entfernen .

Führen Sie die folgenden Schritte aus, um die Anmeldeinformationen von github.com zu entfernen .

  1. Öffnen Sie den Schlüsselbundzugriff
  2. Finden Github
  3. Wähle aus github.com aus und klicken Sie mit der rechten Maustaste darauf
  4. Löschen "github.com"
  5. Versuchen Sie erneut, auf Git zu drücken oder zu ziehen, und es werden Sie nach den Anmeldeinformationen gefragt.
  6. Geben Sie gültige Anmeldeinformationen für das Repository-Konto ein.
  7. Erledigt

    Geben Sie hier die Bildbeschreibung ein


Danke, das funktioniert perfekt auf Mac
OS

13

Müssen sich mit entsprechenden Github usernameund anmeldenpassword

So löschen Sie den Benutzernamen und das Passwort in Windows

Systemsteuerung \ Benutzerkonten \ Anmeldeinformations-Manager

Bearbeiten Sie die Windows-Anmeldeinformationen

Entfernen Sie den vorhandenen Benutzer und gehen Sie zur Eingabeaufforderung. Schreiben Sie den Push-Befehl. Es wird ein Github-Popup angezeigt, in das Sie das username/ emailund eingeben könnenpassword .

Jetzt können wir den Code nach dem Benutzerwechsel pushen.


13

Ich habe den gleichen Fehler beim 'Git Pull' gemacht und so habe ich ihn behoben.

  1. Ändern Sie das Repo in HTTPS
  2. Führen Sie den Befehl aus git config --system --unset credential.helper
  3. Führen Sie den Befehl aus git config --system --add credential.helper manager
  4. Testbefehl git pull
  5. Geben Sie die Anmeldeinformationen in das sich öffnende Anmeldefenster ein.
  6. Git Pull erfolgreich abgeschlossen.

--System? Was ist mit --global? Was ist mit keinem Umfang? Was bedeutet der Einstellungsbereich?
Masterxilo

Nur mit Schritt 1 hat sich mein Problem gelöst.
zzxwill

11

Entfernen Sie diese Zeile aus Ihrer .gitconfig-Datei im aktuell angemeldeten Windows-Benutzerordner:

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

Dies hat bei mir funktioniert und jetzt, wenn ich auf die Fernbedienung drücke, werden Sie erneut nach meinem Passwort gefragt.


11

Sie müssen es in Ihrem Credential Manager aktualisieren.

Gehen Sie zu Systemsteuerung> Benutzerkonten> Anmeldeinformations-Manager> Windows-Anmeldeinformationen. In der Liste werden Git-Anmeldeinformationen angezeigt (z. B. git: https: //). Klicken Sie darauf, aktualisieren Sie das Passwort und führen Sie den Befehl git pull / push von Ihrem Git-Bash aus. Es werden keine weiteren Fehlermeldungen ausgegeben.



10

Die Verwendung der neuesten Version von git für Windows unter Windows 10 Professional und ich hatten ein ähnliches Problem, bei dem ich zwei verschiedene GitHub-Konten und auch ein Bitbucket-Konto habe, sodass die Dinge für VS2017, Git-Erweiterungen und Git-Bash etwas verwirrend wurden.

Ich habe zuerst überprüft, wie git meine Anmeldeinformationen mit diesem Befehl behandelt hat (führen Sie git bash mit erhöhten Befehlen aus, oder Sie erhalten Fehler):

git config --list

Ich habe den Eintrag Credential Manager gefunden, also habe ich auf die Schaltfläche START geklickt> Credential Manager eingegeben und mit der linken Maustaste auf das gelbe Safe-Symbol des Credential Managers geklickt, mit dem die App gestartet wurde. Ich habe dann auf die Registerkarten Windows-Anmeldeinformationen geklickt und den Eintrag für mein aktuelles Git-Konto gefunden, der zufällig Bit-Bucket war, also habe ich dieses Konto gelöscht.

Da dies jedoch nicht ausreichte, bestand der nächste Schritt darin, die Anmeldeinformationen zu deaktivieren, und ich tat dies aus dem Repository-Verzeichnis auf meinem Laptop, das das GitHub-Projekt enthält, das ich auf die Fernbedienung übertragen möchte. Ich habe den folgenden Befehl eingegeben:

git config --system --unset credential.helper

Dann habe ich einen Git-Push gemacht und wurde aufgefordert, einen GitHub-Benutzernamen einzugeben, den ich eingegeben habe (den richtigen, den ich brauchte), und dann das zugehörige Passwort und alles wurde korrekt gepusht.

Ich bin mir nicht sicher, wie groß das Problem in Zukunft sein wird. Die meisten Leute arbeiten wahrscheinlich in einem Repository, aber ich muss über mehrere und verschiedene Anbieter hinweg arbeiten, damit dieses Problem möglicherweise erneut auftritt.


arbeitete für mich .. danke
Krishnamoorthy Acharya

8

In meinem Fall konnte ich die im Windows-Anmeldeinformations-Manager (Windows 7) gespeicherten Anmeldeinformationen nicht finden.

Ich konnte meine Anmeldeinformationen durch Ausführen zurücksetzen

git config --global credential.helper wincred

Es war ehrlich gesagt ein Hagel, Mary zu sehen, ob es meine Anmeldeinformationen auslöschen würde und es tatsächlich funktionierte.


Das hat bei mir funktioniert; Ich hatte KEINEN Eintrag im Credential Manager zum Löschen.
Bdwakefield

7

Sie können die Zeile credential.helper=!github --credentialsaus der folgenden Datei C:\Program Files\Git\mingw64\etc\gitconfigentfernen, um die Anmeldeinformationen für git zu entfernen


7
  1. Gehe zu C:\Users\<current-user>
  2. Nach .git-credentialsDatei suchen
  3. Löschen Sie Inhalte oder ändern Sie sie gemäß Ihren Anforderungen
  4. Starten Sie Ihr Terminal neu

Die einzige Lösung, die für mich funktioniert hat
Wachburn

7

Zumindest unter Windows git remote show [remote-name]funktioniert z

git remote show origin

Ich bin mir nicht sicher, warum die Abstimmung. Es funktioniert. Ich bleibe bei allem anderen.
Jason S

... und ich habe es heute einfach wieder benutzt, erfolgreich. Jedes Mal, wenn ich mein Passwort bei der Arbeit ändere, muss ich dies tun.
Jason S

2
Hat einen Zauber für mich gewirkt.
IronAces

Hier gilt das gleiche. Sie müssen nicht einmal in einem Repository-Verzeichnis sein
Nicola Musatti

6

Wenn Sie möchten, dass git alte gespeicherte Anmeldeinformationen vergisst und Benutzername und Passwort erneut eingibt, können Sie dies mit dem folgenden Befehl tun:

git credential-cache exit

Wenn Sie nach dem Ausführen des obigen Befehls versuchen, etwas zu pushen, können Sie den Benutzernamen und das Kennwort eingeben.


3

Was dies für mich endgültig behoben hat, war, den GitHub-Desktop zu verwenden, zu den Repository-Einstellungen zu wechseln und user: pass @ aus der Repository-URL zu entfernen. Dann habe ich versucht, einen Push über die Befehlszeile auszuführen, und wurde aufgefordert, Anmeldeinformationen einzugeben. Nachdem ich die hineingesteckt hatte, ging alles wieder normal. Sowohl Visual Studio als auch die Befehlszeile funktionieren und natürlich der GitHub-Desktop.

GitHub Desktop-> Repository-> Repository-Einstellungen-> Registerkarte Remote

Ändern Sie das primäre Remote-Repository (Ursprung) von:

https: //pork@muffins@github.com/MyProject/MyProject.git

Zu:

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

Klicken Sie auf "Speichern"

Anmeldeinformationen werden gelöscht.


Das Zurücksetzen des Ursprungs auf denselben über die Befehlszeile unter Windows hat mein Problem behoben. Ich verwende GitLab, daher konnte ich GitHub Desktop dafür nicht verwenden.
David Vargas

3

Für MacOS-Benutzer:

Dieser Fehler tritt auf, wenn Sie mehrere Git-Konten auf demselben Computer verwenden.

Führen Sie die folgenden Schritte aus, um die Anmeldeinformationen von github.com zu entfernen.

  1. Gehe zum Finder
  2. Gehen Sie zu Anwendungen
  3. Gehen Sie zum Dienstprogrammordner
  4. Öffnen Sie den Schlüsselbundzugriff
  5. Wählen Sie github.com aus und klicken Sie mit der rechten Maustaste darauf

    Löschen Sie "github.com"

Versuchen Sie erneut, auf Git zu drücken oder zu ziehen, und es werden Sie nach den Anmeldeinformationen gefragt. Geben Sie gültige Anmeldeinformationen für das Repository-Konto ein. Erledigt


3

Gehen Sie für Windows 10 zum folgenden Pfad:

Systemsteuerung \ Benutzerkonten \ Anmeldeinformations-Manager

An dieser Stelle befinden sich 2 Registerkarten.

  1. Webanmeldeinformationen und 2. Windows-Anmeldeinformationen.

Klicken Sie auf die Registerkarte Windows-Anmeldeinformationen. Hier sehen Sie Ihre gespeicherten Github-Anmeldeinformationen unter der Überschrift "Allgemeine Anmeldeinformationen".

Sie können diese von hier entfernen und versuchen, sie erneut zu klonen. Sie werden jetzt nach Benutzername / Kennwort gefragt, da wir gerade die gespeicherten Anmeldeinformationen von den Windows 10-Systemen entfernt haben


2

So löschen Sie Git Credentials Manager für Windows-Cache:

rm $env:LOCALAPPDATA\GitCredentialManager\tenant.cache

oder

rm %LOCALAPPDATA%\GitCredentialManager\tenant.cache

2

Versuchen Sie dies, wenn nichts wie oben erwähnt für Sie funktioniert.

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

Dadurch wird der Cache alle 3 Sekunden entfernt und nach Benutzername und Kennwort gefragt. Sie können den Befehl mit erhöhten Zeitlimitwerten erneut ausführen.


1

In unserem Fall hat das Löschen des Kennworts in der .git-Anmeldeinformationsdatei des Benutzers für uns funktioniert.

c:\users\[username]\.git-credentials

Ja, einige andere Leute haben dies bereits mehrfach erklärt
Liam

1

Aufbauend auf der hoch bewerteten Antwort von @ patthoyts ( https://stackoverflow.com/a/15382950/4401322 ):

In seiner Antwort werden "lokale" vs. "globale" vs. "System" -Konfigurationen verwendet, aber nicht erklärt. Die offizielle Git-Dokumentation für sie ist hier und lesenswert.

Zum Beispiel bin ich unter Linux und verwende keine Systemkonfiguration , daher verwende ich nie ein --systemFlag, sondern muss normalerweise zwischen --localund --globalKonfigurationen unterscheiden.

Mein Anwendungsfall ist, dass ich zwei Github-Kriterien habe. eine für die Arbeit und eine zum Spielen.

So würde ich mit dem Problem umgehen:

$ 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://whilei@github.com':
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

Es ist auch erwähnenswert, dass es Möglichkeiten gibt, dieses Problem insgesamt zu vermeiden. Sie können beispielsweise die ~/.ssh/configzugehörigen SSH-Schlüssel für Github (einen für die Arbeit, einen für die Wiedergabe) und entsprechend benutzerdefinierte Remote-Hosts verwenden, um auch die Kontextualisierung der Authentifizierung zu lösen.


1

Um @ericbn 's https://stackoverflow.com/a/41111629/579827 hinzuzufügen, sind hier Beispielbefehle aufgeführt, die ich in ein Skript eingebettet habe, das ich ausführe, um alle meine Passwörter zu aktualisieren, wenn sie erneuert werden. Es ist wahrscheinlich nicht so wie es ist verwendbar, da es ziemlich spezifisch ist, aber es zeigt die reale Verwendung von cmdkey.exe.

⚠ Dies ist ein Shell- Skript, das in Cygwin ausgeführt wird

⚠ Dies funktioniert, weil ich private Git-Repos verwende, die sich alle mit demselben Kennwort authentifizieren (Sie möchten wahrscheinlich nicht mit denselben Anmeldeinformationen eine Schleife durchführen, aber Sie können diesen Beispielbefehl erneut verwenden /list, um eine Liste bereits registrierter Anmeldeinformationen zu extrahieren) ⚠

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

0

Wenn Sie mit Ihrem Schlüsselpaar authentifiziert sind, können Sie Ihren privaten Schlüssel löschen oder verschieben oder den Schlüsselagenten stoppen und versuchen.


2
Er verwendet https, daher ist hier kein Schlüssel beteiligt
CharlesB
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.