Se in Windows e l'utente Git per Windows e manager
per la gestione delle credenziali (aka Git-Credential-Manager-for-Windows
Link ) il problema è che non esiste un modo semplice per passare da un utente all'altro quando si spinge su GitHub https
usando i OAuth
token.
Il motivo è che il token è archiviato come:
- Indirizzo internet:
git:https://github.com
- Nome utente:
Personal Access Token
- Parola d'ordine:
OAuth_Token
Le varianti dell'URL in Internet Address
non funzionano, ad esempio:
git:https://username@github.com
git:https://github.com/username
- ...
La soluzione: spazi dei nomi . Questo si trova nei dettagli per la configurazione di Git-Credential-Manager-for-Windows
:
Citando da esso:
namespace
Imposta lo spazio dei nomi per le credenziali archiviate.
Per impostazione predefinita, GCM utilizza lo spazio dei nomi 'git' per tutte le credenziali archiviate, l'impostazione di questo valore di configurazione consente il controllo dello spazio dei nomi utilizzato a livello globale o per host.
git config --global credential.namespace name
Ora, memorizza le tue credenziali in Gestione credenziali di Windows come:
- Indirizzo internet:
git.username:https://github.com
- Nome utente:
Personal Access Token
- Parola d'ordine:
OAuth_Token
Si noti che abbiamo modificato: git
-> git.username
(dove si cambia username
il nome utente effettivo o, per il gusto di farlo, in qualunque cosa si desideri come identificatore univoco)
Ora, all'interno del repository in cui si desidera utilizzare la voce specifica, eseguire:
git config credential.namespace git.username
(Ancora una volta ... sostituisci username
con il valore desiderato)
Il tuo .git/config
conterrà ora:
[credential]
namespace = git.username
Et voilà! Le credenziali giuste verranno estratte dall'archivio credenziali di Windows.
Questo, ovviamente, non cambia l'utente / e-mail che sta spingendo. Per questo devi configurare il solito user.name
euser.email
git config --global user.name her_username
) prima di spingere