2014-06-18 3 views
5

Sto eseguendo Git su Mavericks OSX e non ho avuto problemi fino ad ora. Ciò che è cambiato è che sto cercando di utilizzare due account Github su repository diversi sullo stesso computer.Come posso memorizzare le credenziali del portachiavi per più account Github?

Il problema è che osx-keychain memorizza le informazioni di accesso dal mio primo account. È stato fantastico prima d'ora, ma ogni volta che provo a commettere o spingere dal mio nuovo account Github, per default utilizzo i valori del nome utente e della password del portachiavi e ignoro i file git config (o persino globali git config!) Localmente definiti.

Posso cancellare il mio portachiavi osx e quindi passare al nuovo account, ma così facendo creerò un nuovo portachiavi per quell'account, che mi riporterà al punto di partenza: in grado di spingere al mio account secondario con i nuovi valori portachiavi ma bloccati dal mio account principale.

Quindi sono bloccato in una situazione "o-o" e spero davvero che ci sia una soluzione "entrambe". Qualsiasi aiuto?

P.S. Ho provato this solution, e non ha funzionato, come il osx-keychain sembrava ignorare la funzionalità SSH identità

+0

[È possibile configurarlo nel file di configurazione git globale come descritto qui.] (Http://stackoverflow.com/a/31351376/1922144) – davidcondrey

risposta

3

Se si utilizza HTTPS URL, quindi the solution you mention non avrebbe alcun effetto: è per molteplici chiavi SSH.

https Per quanto riguarda, this question menziona alcune soluzioni, tra cui:

  • Con gitcredentials predefinite considera solo il nome di dominio.
    Se si desidera git di prendere in considerazione il percorso completo (ad esempio, se si dispone di più account GitHub), impostare la variabile useHttpPath true, come descritto in gitcredentials.
    Si noti che la modifica di questa impostazione richiederà nuovamente le credenziali per ogni URL.

Per impostazione predefinita, Git non considera la componente "percorso" di un URL HTTP per essere un valore corrispondente tramite collaboratori esterni.
Ciò significa che verrà utilizzata anche una credenziale memorizzata per https://example.com/foo.git per https://example.com/bar.git.
Se si desidera distinguere questi casi, impostare questa opzione su true.

Inoltre, assicurarsi che le URL HTTPS incudes il nome account:

git clone https://[email protected]/auser/aprojectX 
git clone https://[email protected]/auser/aprojectY 

che aiutare un'aiutante credenziale di nota che rappresentano/password che dovrebbe essere alla ricerca di.

Infine, l'autenticazione si sta utilizzando per l'accesso a un servizio di hosting repo git non ha nulla a che fare con:

git config (--global) user.name 

Quest'ultima configurazione è solo per impostare l'autore associato con i tuoi commit locali.
Non serve per selezionare l'account utilizzato per accedere a un sito Web di hosting remoto.