2012-06-16 3 views
53

Ich habe die Anweisungen von GitHub zur Einrichtung meines Kontos befolgt, und ich kann klonen, aber ich kann nicht per Fernzugriff pushen.Wie setzen Sie die gespeicherten Anmeldeinformationen in 'git credential-osxkeychain' zurück?

Wenn ich einen "git push" mache, bekomme ich den 403 Fehler. Es hat die korrekte URL. Ich habe eine "git credential-osxkeychain get" versucht, um zu sehen, was es gab, und das druckt die falschen Anmeldeinformationen aus.

Ich glaube, was passiert ist, ist das erste Mal, es für die Anmeldeinformationen gefragt, ich dachte, es eine andere Anwendung war gefragt, und es setzte die falschen in.

ich zurücksetzen müssen, um es einfach so, dass es die richtigen verwendet Keychain-Artikel für meinen GitHub-Account.

Ich habe versucht:

git credential-osxkeychain erase 
git credential-osxkeychain set 

Das Programm nie irgendwelche Anweisungen gibt. Set wird "schlechte Eingabe" sagen, wenn ich nicht das Richtige tue. Ich habe versucht, "password=password" usw. einzugeben, aber dann, wenn ich ein "Get" mache, bekomme ich immer noch die alten.

Ich kann nicht herausfinden, wo diese gespeichert werden, da sie nicht in .gitconfigure sind. Außerdem gibt es keine neuen Schlüsselbundartikel, die es sein könnten. (Ich habe mehrere GitHub-Konten in meinem Schlüsselbund und verwendet keine von ihnen.)

+0

Verwandte, Credential-Helfer Agnostiker: http://stackoverflow.com/questions/21745213/changed-github-password-no-longer-able-to-push -back-to-the-remote –

+0

Wahrscheinlich das gleiche unter Windows: http://StackOverflow.com/questions/15381198/remove-credentials-from-git –

+0

[Sie können dieses Hilfsprogramm so einstellen, dass Ihre Anmeldung eher bestimmten Repos zugeordnet wird als ganze Domains, falls Sie mehrere Accounts verwenden möchten. Mehr dazu hier] (http://stackoverflow.com/a/31351376/1922144) – davidcondrey

Antwort

19

Die Lösung erwies sich dabei, um:

Der Befehl git credential-osxkeychain die erste GitHub Konto Eintrag in meinem Schlüsselbund benutzte. Dieser war nicht derjenige, der Zugang zu den fraglichen Projekten hatte.

Ich löste das Problem durch Berühren des Kontos in Keychain Access, so dass sein Datum geändert wurde (ich glaube, ich habe gerade den Kommentar geändert) und jetzt, dass es das neueste GitHub-Konto wurde es das erste an credential-osxkeychain zurückgegeben wurde, und so hat alles funktioniert.

Eine bessere Form der Unterstützung für mehrere GitHub-Konten wäre nett, aber es ist wahrscheinlich, dass die meisten Leute nur ein primäres Konto haben und dieses Problem nicht haben.

+2

Ich bin mir nicht sicher, wie dies für mehrere Benutzer auf dem gleichen Host funktioniert, aber Sie könnten ssh auschecken und eine '~/.ssh/config'-Datei anstelle von OSX Keychain verwenden. Dies wird in Fällen verwendet, in denen Sie mehrere ssh-Schlüssel für verschiedene Hosts (und auch für denkende Accounts) haben können. http://nerderati.com/2011/03/17/simplify-your-life-with-an-sssh-config-file/ – jusopi

+0

Du gottverdammter Held! – Cristian

3

Versuchen Sie, /Applications/Utilities/Keychain Access auszuführen.

54

Ich bin nicht sicher, wie man über die Befehlszeile löschen, aber es ist ziemlich einfach, es über die Keychain Access App zu tun. Gehen Sie einfach zu Anwendungen -> Utilities -> Keychain Access und geben Sie "github.com" ein. Sie können entweder das ungültige Element löschen oder das Passwort mit der App aktualisieren.

+2

Wenn jemand dies liest, wie es von der Kommandozeile aus geht, wäre es schön zu wissen. – funroll

+1

@funroll Das Kommandozeilenwerkzeug ist 'security'. Die man-Seite gibt an, dass sie einen 'delete-internet-password' Befehl hat. – benzado

+0

Danke für das Update, ich bin sicher, dass das für jemanden nützlich sein wird. – funroll

9

git-credential-osxkeychain speichert Passwörter im Apple Keychain, wie oben erwähnt.

Standardmäßig berücksichtigt gitcredentials nur den Domänennamen. Wenn Sie möchten, dass Git den vollständigen Pfad berücksichtigt (z. B. wenn Sie mehrere GitHub-Konten haben), setzen Sie die useHttpPath Variable auf true, wie unter http://git-scm.com/docs/gitcredentials.html beschrieben. Beachten Sie, dass beim Ändern dieser Einstellung Ihre Anmeldeinformationen für jede URL erneut abgefragt werden.

40

Vom Terminal:

$ git credential-osxkeychain erase 
host=github.com 
protocol=https 
<press return> 
+1

Großartig es Arbeit mit git credential-wincred löschen zu –

+2

Aus irgendeinem Grund konnte ich keine Git/GitHub Anmeldeinformationen innerhalb der Keychain App finden, aber das hat funktioniert. Vielen Dank! – Donald

3

Auf dem Mac verwenden Sie den Befehl git credential-osxkeychain erase.

oder entfernen Sie manuell von Schlüsselanhänger aus AnwendungenDienstprogrammeSchlüsselbund. Entfernen Sie dann den github.com-Schlüsselbund. Dann benutze drücken; es wird nach dem Zugriff auf den Schlüsselbund fragen; dann leugnen.

Es wird nach dem neuen Benutzernamen und Passwort fragen, fügen Sie es dann eine Datei dafür.

Nach git push habe ich diesen Fehler gefunden. Dann benutze ich die obere Fall- Ausgabe:

remote: Permission to user1/file.git denied to user2(previously exist user ). fatal: unable to access ' https://github.com/xxxxxxxxxxxx/ ': The requested URL returned error: 403

Verwandte Themen