Se in Windows e l'utente Git per Windows e managerper 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 httpsusando i OAuthtoken.
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 Addressnon 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 usernameil 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 usernamecon il valore desiderato)
Il tuo .git/configconterrà 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.nameeuser.email
git config --global user.name her_username) prima di spingere