web-dev-qa-db-fra.com

La configuration git locale ne remplace pas l'utilisateur global pour le projet

J'ai un utilisateur git global configuré, mais je veux utiliser un autre utilisateur pour un seul projet git.

Dans ce projet, j'ai utilisé git config --local user.name "localuser" et git config --local user.email "[email protected]" pour définir l'utilisateur et l'adresse e-mail du projet local.

Cependant, lorsque j'essaie de pousser sur ma télécommande sur github, j'obtiens cette erreur:

remote: Permission to localuser/repo.git denied to globaluser.
fatal: unable to access 'https://github.com/localuser/repo.git/': The requested URL returned error: 403

Voici quelques résultats qui pourraient aider au diagnostic:

git remote -v:

github  https://github.com/localuser/repo.git (fetch)
github  https://github.com/localuser/repo.git (Push)

git config --list:

user.name=globaluser
[email protected]
...

git config --local --list:

user.name=localuser
[email protected]
...

git config user.name:

localuser
41
amacrobert

J'avais commis mes modifications et reçu une autorisation refusée avec mon utilisateur global. La définition ultérieure de l'utilisateur local n'a rien fait, bien que git config user.name a signalé le bon utilisateur local.

Ce qui a fonctionné a été ( avec l'aimable autorisation de ce fil Google Groupes) :

git commit --amend --reset-author

Je suppose que les modifications engagées avaient l'auteur original joint.

21
thekevinscott

Si vous travaillez sur OSX avec GitHub, cela pourrait être un problème de certificat. Votre certificat GitHub, qui se souvient de votre user.name et user.email, remplace les paramètres de configuration locaux. Une façon de le résoudre consiste à accéder à votre trousseau et à supprimer le certificat GitHub.

11
CasperTN

J'ai essayé de nombreuses façons, j'ai passé de nombreuses heures mais rien n'a fonctionné. J'ai finalement dû effacer tout l'utilisateur:

git config --local --unset credential.helper
git config --global --unset credential.helper
git config --system --unset credential.helper

On me demande maintenant à nouveau mes informations d'identification GitHub sur Push et je peux fournir l'ID utilisateur et le mot de passe corrects :)

Si vous utilisez Windows, il peut également être supprimé en allant à Control Panel\User Accounts\Credential Manager

7
JerryGoyal