2012-06-16 15 views
53

Ho seguito le istruzioni GitHub per configurare il mio account e sono in grado di clonare, ma non riesco a spingere da remoto.Come si ripristinano le credenziali archiviate in 'git credential-osxkeychain'?

Quando faccio un "git push" ottengo l'errore 403. Ha l'URL corretto. Ho provato un "git credential-osxkeychain get" per vedere cosa stava dando, e questo stampa le credenziali sbagliate.

Credo che ciò che è accaduto è la prima volta che ha chiesto per le credenziali, ho pensato che fosse un'altra applicazione chiedere, e mettere quelle sbagliate in.

ho solo bisogno di ripristinare in modo che esso utilizza il corretto elemento portachiavi per il mio account GitHub.

ho provato:

git credential-osxkeychain erase 
git credential-osxkeychain set 

Il programma non dà alcuna richiesta. Set dirà "input negativo" se non faccio la cosa giusta. Ho provato a inserire "password=password", ecc., Ma poi quando faccio un "get" ho ancora i vecchi.

Non riesco a capire dove vengono memorizzati, poiché non sono in .gitconfigure. Inoltre non ci sono elementi portachiavi recenti che potrebbero essere. (Ho diversi account GitHub nel mio portachiavi e non ne utilizzo nessuno.)

+0

correlati, aiutante credenziale agnostica: http://stackoverflow.com/questions/21745213/changed-github-password-no-longer-able-to-push -back-to-the-remote –

+0

Probabilmente lo stesso su Windows: http://stackoverflow.com/questions/15381198/remove-credentials-from-git –

+0

[È possibile impostare questa utilità di supporto per associare il proprio login con repository specifici piuttosto di interi domini, nel caso in cui si desideri utilizzare più account. Maggiori informazioni su questo qui] (http://stackoverflow.com/a/31351376/1922144) – davidcondrey

risposta

19

La soluzione si è rivelata essere questo:

Il comando git credential-osxkeychain stava usando l'account di entrata prima GitHub nel mio portachiavi. Questo non era quello che aveva accesso ai progetti in questione.

Ho risolto il problema toccando l'account in Accesso Portachiavi in ​​modo che la sua data fosse cambiata (credo di aver appena modificato il commento) e ora che è diventato l'account GitHub più recente è diventato il primo restituito alla credenziale-osxkeychain, e quindi tutto ha funzionato.

Una migliore forma di supporto per più account GitHub sarebbe piacevole, ma è probabile che la maggior parte delle persone abbia un solo account principale e non si imbatti in questo problema.

+2

Non sono sicuro di come funzioni per più utenti sullo stesso host, ma potresti controllare ssh e usare un file '~/.ssh/config' invece di usare il portachiavi OSX. Questo è usato nei casi in cui si possono avere più chiavi SSH per diversi host (e anche account pensanti). http://nerderati.com/2011/03/17/simplify-your-life-with-an-ssh-config-file/ – jusopi

+0

Sei un dannato eroe! – Cristian

3

Provare a eseguire /Applications/Utilities/Keychain Access.

54

Non sono sicuro di come cancellare tramite la riga di comando, ma è abbastanza facile farlo tramite l'app Accesso Portachiavi. Basta andare su Applicazioni -> Utilità -> Accesso Portachiavi, quindi inserire "github.com". Puoi eliminare l'elemento non valido o aggiornare la password con l'app.

+2

Se qualcuno che legge questo calcola come fare dalla riga di comando, sarebbe bello saperlo. – funroll

+1

@funroll Lo strumento da riga di comando è 'security'. La pagina man afferma che ha un comando 'delete-internet-password'. – benzado

+0

Grazie per l'aggiornamento, sono sicuro che sarà utile a qualcuno. – funroll

9

git-credential-osxkeychain memorizza le password nel portachiavi Apple, come indicato sopra.

Per impostazione predefinita, gitcredentials considera solo il nome del dominio. Se vuoi che Git consideri il percorso completo (ad es. Se hai più account GitHub), imposta la variabile useHttpPath su true, come descritto allo http://git-scm.com/docs/gitcredentials.html. Si noti che la modifica di questa impostazione richiederà nuovamente le credenziali per ogni URL.

40

Dal Terminal:

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

Funziona anche con git credential-wincred cancella –

+2

Per qualche motivo non sono riuscito a trovare credenziali Git/GitHub nell'app Keychain, ma questo ha funzionato. Grazie! – Donald

3

Su Mac, utilizzare il comando git credential-osxkeychain erase.

o rimuovere manualmente dal portachiavi da Applicazioni →UtilitàAccesso Portachiavi. Quindi rimuovere il portachiavi github.com. Quindi utilizzare la spinta; chiederà l'accesso al portachiavi; quindi negare.

Richiederà il nuovo nome utente e la password, quindi aggiungerà un file per questo.

Dopo git push Ho trovato questo errore. Poi io uso la parte superiore del caso- problema:

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

Problemi correlati