Ich arbeite mit mehreren Repositories, aber in letzter Zeit arbeitete ich nur in unserem internen und alles war großartig.
Heute musste ich einen Code festlegen und in einen anderen Code verschieben, aber ich habe einige Probleme.
$ git Push appharbor master
error: The requested URL returned error: 403 while accessing https://[email protected]/mitivo.git/info/refs?service=git-receive-pack
fatal: HTTP request failed
Es gibt nichts was ich tun kann, das würde die Passworteingabe erneut bringen.
Wie kann ich die Anmeldeinformationen auf meinem System zurücksetzen, sodass Git mich nach dem Kennwort dieses Repositorys fragt?
Ich habe versucht:
git config --global --unset core.askpass
um das Passwort zu löschen
git config credential.helper 'cache --timeout=1'
um Cache-Ausweise zu vermeiden ...
Nichts scheint zu funktionieren; hat jemand eine bessere idee?
Der Git-Berechtigungsnachweiscache führt einen Daemon-Prozess aus, der Ihre Berechtigungsnachweise im Arbeitsspeicher speichert und bei Bedarf ausgibt. So beenden Sie Ihren git-credential-cache - daemon-Prozess löscht all dies und fordert Sie erneut auf, Ihr Kennwort einzugeben, wenn Sie dies weiterhin als cache.helper-Option verwenden.
Sie können auch die Verwendung des Git-Berechtigungscache mithilfe von git config --global --unset credential.helper
deaktivieren. Setzen Sie dann das zurück, und Sie haben die zwischengespeicherten Anmeldeinformationen weiterhin für andere Repositorys verfügbar (sofern vorhanden). Möglicherweise müssen Sie auch git config --system --unset credential.helper
ausführen, wenn dies in der Systemkonfigurationsdatei festgelegt wurde (z. B. Git für Windows 2).
Unter Windows können Sie den manager - Helfer (git config --global credential.helper manager
) verwenden. Dies speichert Ihre Anmeldeinformationen im Windows-Anmeldeinformationsspeicher, der über eine Systemsteuerungsoberfläche verfügt, in der Sie Ihre gespeicherten Anmeldeinformationen löschen oder bearbeiten können. In diesem Store sind Ihre Daten durch Ihre Windows-Anmeldung geschützt und können über mehrere Sitzungen hinweg gespeichert werden. Der in Git für Windows 2.x enthaltene Helfer manager hat den früheren Helper wincred 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 mehr GUI-gesteuerte Schnittstelle bietet. Der manager - Helper bietet dieselbe GUI-Schnittstelle wie winstore.
Auszug aus dem Windows-Handbuch Detail des Windows-Fensters für Berechtigungsnachweise:
Öffnen Sie Benutzerkonten, indem Sie auf die Schaltfläche Start Schaltfläche "Start" klicken, auf Systemsteuerung klicken, auf Benutzerkonten und Family Safety klicken (oder auf Benutzerkonten, wenn Sie mit einer Netzwerkdomäne verbunden sind) und dann auf Benutzerkonten klicken. Klicken Sie im linken Bereich auf Anmeldeinformationen verwalten.
Wenn dieses Problem auf einem Windows-Computer auftritt, gehen Sie wie folgt vor.
Erneut eingeben:
$ git config credential.helper store
Anschließend werden Sie aufgefordert, Ihre Anmeldeinformationen erneut einzugeben.
WARNUNG
Mit diesem Helfer werden Ihre Passwörter unverschlüsselt auf der Festplatte gespeichert
Ich hatte das gleiche Problem wie das OP. Meine alten Git-Anmeldeinformationen wurden irgendwo auf dem System gespeichert, und ich wollte Git mit meinen neuen Anmeldeinformationen verwenden. Deshalb habe ich den Befehl ausgeführt
$ git config --system --list
Es zeigte
credential.helper=manager
Wann immer ich git Push
durchführte, nahm er meinen alten Benutzernamen, den ich lange zurückgesetzt hatte, und ich wollte ein neues GitHub-Konto für Push-Änderungen verwenden. Später stellte ich fest, dass meine alten GitHub-Konto-Anmeldeinformationen unter Systemsteuerung → Benutzerkonten → Credential Manager → Windows-Anmeldeinformationen verwalten gespeichert wurden.
Ich habe gerade diese Anmeldeinformationen entfernt, und als ich git Push
ausgeführt habe, wurde ich nach meinen GitHub-Anmeldeinformationen gefragt, und es funktionierte wie ein Zauber.
Versuchen Sie es mit dem folgenden Befehl.
git credential-manager
Hier können Sie verschiedene Optionen zum Verwalten Ihrer Anmeldeinformationen erhalten (siehe untenstehender Bildschirm).
Oder Sie können diesen Befehl sogar direkt ausprobieren:
git credential-manager uninstall
Dadurch werden Sie bei jeder Server-Interaktionsanfrage erneut zur Eingabe von Kennwörtern aufgefordert.
Ich habe etwas gefunden, das für mich funktioniert hat. Als ich meinen Kommentar an das OP schrieb, konnte ich die System-Konfigurationsdatei nicht überprüfen:
git config --system -l
zeigt ein
credential.helper=!github --credentials
linie. Ich löse es mit
git config --system --unset credential.helper
und jetzt sind die Zeugnisse vergessen.
git config --list
zeigt credential.helper = manager
(dies ist auf einem Windows-Rechner)
Um diesen zwischengespeicherten Benutzernamen/Passwort für Ihren aktuellen lokalen Git-Ordner zu deaktivieren, geben Sie einfach Folgendes ein
git config credential.helper ""
Auf diese Weise fordert git jedes Mal zur Eingabe eines Kennworts auf und ignoriert, was in "manager" gespeichert ist.
Bei Windows 2003 Server mit "wincred" * hat mir keine der anderen Antworten geholfen. Ich musste cmdkey
verwenden.
cmdkey /list
listet alle gespeicherten Anmeldeinformationen auf.cmdkey /delete:Target
löscht den Berechtigungsnachweis mit dem Namen "Ziel".(* Mit "wincred" meine ich git config --global credential.helper wincred
)
Sie müssen sich mit dem entsprechenden github username
und password
anmelden.
So löschen Sie den Benutzernamen und das Kennwort in Windows
Systemsteuerung\Benutzerkonten\Credential Manager
Bearbeiten Sie den Windows-Berechtigungsnachweis
Entfernen Sie den vorhandenen Benutzer und gehen Sie zum Befehl Eingabeaufforderung. Schreiben Sie den Push-Befehl. Er zeigt ein Github-Popup, in das Sie username
/email
und password
eingeben.
Jetzt können wir den Code nach dem Umschalten des Benutzers drücken.
Entfernen Sie diese Zeile aus Ihrer .gitconfig-Datei, die sich im aktuell angemeldeten Benutzerordner von Windows befindet:
[credential]
helper = !\"C:/Program Files (x86)/GitExtensions/GitCredentialWinStore/git-credential-winstore.exe\"
Das funktionierte für mich und jetzt, wenn ich auf Remote schiebe, werden Sie nach meinem Passwort gefragt.
Wenn Git Credential Manager für Windows verwendet wird (was derzeitige Versionen normalerweise tun):
git credential-manager clear
Dies wurde hinzugefügt Mitte 2016 . So prüfen Sie, ob der Anmeldeinformations-Manager verwendet wird:
git config --global credential.helper
→ manager
Sie können die Zeile credential.helper=!github --credentials
aus der folgenden Datei C:\Program Files\Git\mingw64\etc\gitconfig
entfernen, um die Berechtigungsnachweise für git zu entfernen
Ich habe den gleichen Fehler beim 'git pull' und so habe ich es behoben.
In meinem Fall konnte ich die im Windows Credential 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, um zu sehen, ob es meine Nachweise auslöschen würde, und es funktionierte tatsächlich.
C:\Users\<current-user>
.git-credentials
-DateiSie 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 Kennwort, und führen Sie den Befehl git pull/Push aus Ihrer Git-Bash aus. Es werden keine Fehlermeldungen mehr ausgegeben.
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.
Befolgen Sie die nachfolgenden Schritte, um die Anmeldeinformationen github.com zu entfernen.
Erledigt
Mit der neuesten Version von git für Windows unter Windows 10 Professional und ich hatte ein ähnliches Problem, wobei ich zwei verschiedene GitHub-Konten und auch einen Bitbucket-Account hatte, sodass die Dinge für VS2017, Git-Erweiterungen und Git-Bash etwas verwirrend wurden.
Ich habe zuerst mit diesem Befehl überprüft, wie git meine Anmeldeinformationen handhabte (git bash mit erhöhten Befehlen ausführen oder es werden Fehler angezeigt):
git config --list
Ich habe den Eintrag Credential Manager gefunden, also habe ich auf die START-Schaltfläche geklickt> Credential Manager eingegeben und mit der linken Maustaste auf das Yell-Symbol des Credential Manager geklickt, das die App gestartet hat. Dann klickte ich auf die Windows-Anmeldeinformationsregisterkarten und fand den Eintrag für mein aktuelles Git-Konto, das zufällig Bitbucket war, und löschte dieses Konto.
Dies hat jedoch nicht den Trick gemacht. Der nächste Schritt bestand darin, die Anmeldeinformationen aufzuheben, und ich tat dies aus dem Repository-Verzeichnis auf meinem Laptop, das das GitHub-Projekt enthält, das ich auf die Fernbedienung schieben möchte. Ich habe den folgenden Befehl eingegeben:
git config --system --unset credential.helper
Dann machte ich einen git Push und wurde aufgefordert, einen GitHub-Benutzernamen einzugeben (den richtigen, den ich brauchte) und dann das dazugehörige Passwort und alles wurde richtig gepusht.
Ich bin mir nicht sicher, um welche Frage es sich hierbei handelt. Die meisten Leute arbeiten wahrscheinlich mit einem Repo, aber ich muss mit mehreren Anbietern arbeiten und verschiedene Anbieter verwenden, so dass dieses Problem möglicherweise erneut auftritt.
In unserem Fall funktionierte das Löschen des Passworts in der .git-credentials-Datei des Benutzers für uns.
c:\users\[username]\.git-credentials
Für mich wurde das Problem behoben: GitHub-Desktop verwenden, zu den Repository-Einstellungen wechseln und user: pass @ aus der Repository-URL entfernen. Dann habe ich einen Push von der Befehlszeile aus versucht und wurde zur Eingabe der Anmeldeinformationen aufgefordert. Nachdem ich die eingemischt hatte, ging alles wieder normal. Sowohl Visual Studio als auch die Befehlszeile funktionieren, und natürlich der GitHub-Desktop.
GitHub Desktop-> Repository-> Repository-Einstellungen-> Remote-Registerkarte
Primäres Remote-Repository (Origin) ändern von:
https: //[email protected]@github.com/MyProject/MyProject.git
Zu:
https://github.com/MyProject/MyProject.git
Klicken Sie auf "Speichern".
Anmeldeinformationen werden gelöscht.
Zumindest unter Windows funktioniert git remote show [remote-name]
, z.
git remote show Origin
Wie bereits erwähnt, ist dies ein Git Credential Manager
-Problem. Aufgrund von Berechtigungen konnte ich meine Anmeldeinformationen nicht ändern oder den Anmeldeinformationsmanager manipulieren. Eine Problemumgehung bestand darin, den Remote-Zweig in intellij
zu löschen und den Remote-Zweig erneut hinzuzufügen. Dadurch werden die gespeicherten Anmeldeinformationen entfernt und die Aktualisierung der Anmeldeinformationen erzwungen.
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 gelöscht und nach Benutzername und Kennwort gefragt. Sie können den Befehl mit erhöhten Zeitlimitwerten erneut ausführen.
Aufbau von @ patthoyts 'hoch gewählter Antwort ( https://stackoverflow.com/a/15382950/4401322 ):
Seine Antwort verwendet "local" vs. "global" vs. "system" configs, erklärt sie jedoch nicht. Die offizielle Git-Dokumentation für sie ist hier und lesenswert.
Zum Beispiel bin ich unter Linux und verwende keine system -Konfiguration, daher verwende ich niemals ein --system
-Flag, muss aber normalerweise zwischen --local
und --global
-configs unterscheiden.
Mein Anwendungsfall ist, dass ich zwei Github-Crendentials habe; eine für die Arbeit und eine für das Spiel.
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://[email protected]':
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 dieses Problem gänzlich vermieden werden kann. Sie können beispielsweise ~/.ssh/config
s mit zugehörigen SSH-Schlüsseln für Github (einer für die Arbeit, einer für die Wiedergabe) und entsprechend benutzerdefinierten Remote-Hosts verwenden, um die Kontextualisierung der Authentifizierung zu lösen.
So löschen Sie den Cache von Git Credentials Managers für Windows:
rm $env:LOCALAPPDATA\GitCredentialManager\tenant.cache
oder
rm %LOCALAPPDATA%\GitCredentialManager\tenant.cache
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.
Für macOS-Benutzer:
Dieser Fehler tritt auf, wenn Sie mehrere Git-Konten auf demselben Computer verwenden.
Befolgen Sie die folgenden Schritte, um die Anmeldeinformationen von github.com zu entfernen.
Wählen Sie den github.com und klicken Sie mit der rechten Maustaste darauf
"Github.com" löschen
Versuchen Sie es erneut mit Push oder Pull zu git und es werden die Anmeldeinformationen abgefragt