Comment changer d'utilisateur git au terminal?

48

J'essaie de pousser un projet vers un référentiel distant à partir de la ligne de commande.

De l'intérieur de mon annuaire local, j'ai frappé:

$ git push

et obtenez l'erreur suivante:

à distance: autorisation à username1 / repo.git refusée à username2.
fatal: impossible d'accéder à ' https://github.com/username1/repo.git/ ': l'
URL demandée a renvoyé l'erreur: 403

username1est le nom d'utilisateur de mon compte github hébergeant le référentiel vers lequel je veux pousser et username2est un ancien compte que j'utilisais sur cette machine.

J'utilise OS X Yosemite (v10.10.5) sur un Macbook Air. Et je préférerais utiliser https au lieu de ssh .

Comment puis-je mettre à jour pour username1pouvoir pousser avec succès vers ma télécommande?

Modifier: pour être clair, je ne parle pas simplement de modifier l' config userobjet, par exemple,

$ git config --global user.name "Billy Everyteen"
$ git config --global user.email "[email protected]"

Ils n'ont rien à voir avec l'authentification. Ma question porte sur l'authentification des utilisateurs nécessaire pour écrire dans mon référentiel distant.

Mowzer
la source
Merci. Mais cela ne concerne que la définition du nom d'utilisateur. Pas d'authentification. En d'autres termes, cette documentation nous montre comment associer le nom de qui obtient le crédit pour les commits. Mais cela n'autorise pas réellement l'utilisateur à pousser les validations.
Mowzer
1
Vous pourrez peut-être le modifier en utilisant la commande documentée sur git-scm.com/docs/gitcredentials . Alternativement, si vous souhaitez effacer les informations d'identification, vous pouvez consulter cette question stackoverflow.com/questions/15381198/… .
John
Cela ne résout pas le problème!
Mihail Salari
que faire si je ne souhaite pas modifier les paramètres git locaux?
Arkady

Réponses:

42

En plus de changer le nom d'utilisateur et l'e-mail du terminal en utilisant git config:

$ git config --global user.name "Bob"
$ git config --global user.email "[email protected]"

vous devrez supprimer les informations d'autorisation du trousseau. C'est quelque chose que j'ai également eu du mal jusqu'à ce que je trouve que j'avais également un certificat dans mon trousseau.

Ouvrez l'accès au trousseau, cliquez sur Tous les articles et recherchez git. Vous obtiendrez des articles comme celui-ci:

Capture d'écran

Supprime-les. Maintenant, essayez de pousser le dépôt et git vous demandera d'écrire le mot de passe pour l'utilisateur et vous serez prêt à partir.

Dit Sikira
la source
1
Et les utilisateurs de Windows?
Aks ..
2
j'ai plusieurs comptes que dois-je faire
Amerrnath
J'ai le même problème avec win7. Je ne sais pas quelle est la solution :(
Fiddle Freak
22

Pour les utilisateurs de cli, utilisez simplement ceci: git config credential.username 'Billy Everytee'

Jackman
la source
Vous devez désactiver temporairement 2FA.
bbaassssiiee
10

Pour l'utilisateur Windows:
Suivez les instructions:
Panneau de configuration >> Compte d'utilisateur >> Gestionnaire d'informations d'identification >> Informations d'identification Windows >> Informations d'identification génériques

supprimer les informations d'identification git.
la prochaine fois que vous pousserez repo, il vous demandera des informations d'identification.
Référence de réponse pour une explication détaillée

Shubham Chadokar
la source
Merci! C'est ce que je cherchais sous Windows.
JCF
@JCF Bienvenue! Je suis content que cela ait aidé!
Shubham Chadokar
6

Listez votre configuration git.

git config --list

Changer le nom d'utilisateur et l'e-mail global

git config --global user.name "Nanhe Kumar"
git config --global user.email "[email protected]"

Changer le nom d'utilisateur et l'e-mail pour le dépôt actuel

git config  user.name "Nanhe Kumar"
git config  user.email "[email protected]"

Modifiez votre URL de dépôt si vous utilisez un ensemble de bits.

nano .git/config

Ce fichier sera quelque chose comme ça. [core] repositoryformatversion = 0 fileMode = false bare = false logallrefupdates = true ignorecase = true precomposeunicode = true [remote "origin"] url = https://[email protected]/nanhekumar/myproject.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master

[user]
        name = Nanhe Kumar
        email = [email protected]
Nanhe Kumar
la source
Il s'agit de la réponse la plus complète compte tenu de la portée mondiale et locale du dépôt.
Jordan Stefanelli