git pousse avec le mauvais utilisateur du terminal

J’ai un problème avec git et mon terminal.

Voici une galerie pour vous montrer mon numéro: http://imgur.com/a/6RrEY

Quand je pousse les commits depuis mon terminal, git dit que je les pousse avec un autre nom d’utilisateur, c’est un utilisateur de mon organisation (mon entreprise) sans aucun engagement et il semble qu’il n’appartienne à personne:

Mais cela ne se produit pas lorsque j’utilise Github pour mac, dans le stream je vois les commits poussés par moi-même.

Le problème affecte également mes référentiels personnels, mon terminal dit que je n’ai pas la permission de pousser des commits sur ces référentiels (ce qui est évidemment faux) car il essaie de le pousser avec cet utilisateur: (check gallery second pic)

Devine quoi ? Cela ne se produit pas avec Github pour mac aussi.

J’ai changé mon ordinateur il y a quelques jours, j’ai donc réinitialisé toute ma clé ssh de github et n’en ai laissé qu’une nouvelle générée par Github pour Mac. quelque part, ce disque dur est tout neuf: (check gallery troisième image)

Mon fichier .gitconfig est clair, il n’y a que mes identifiants: (vérifiez la quasortingème photo de la galerie)

Je ne comprends vraiment pas, StackOverflow, vous êtes mon seul espoir.

(Mes excuses pour mes faibles compétences Gimp et la référence Star Wars)

EDIT: ssh-add -l affiche uniquement la bonne clé ssh créée par github pour mac et je n’ai qu’un seul compte github

EDIT2: ssh -T git@github.com me reconnaît comme le bon utilisateur.

EDIT3: Après quelques tests, il semble que mon terminal effectue les commits avec mon nom d’utilisateur, mais les pousse avec l’autre, Github pour mac valide et pousse avec le bon nom d’utilisateur. ceux).

EDIT4: Dans un repository personnel git log --pretty="%h %an %ae" montre mon bon nom d’utilisateur

EDIT5: Aucun signe de variables d’environnement qui remplacerait mes informations d’identification dans mon env . Même si j’essaie de définir ces variables avec le bon problème d’identification persiste.

EDIT6: Les choses fonctionnent normalement si je force l’utilisateur sur le chemin de /.git/config d’un repository mais je ne pense pas que ce soit la bonne option: http://USER@github.com/USER/REPO.git

EDIT7: Nous avons supprimé l’utilisateur git qui a poussé les commits pour moi et cela entraîne une autre erreur: remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/USER/REPO.git/' remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/USER/REPO.git/'

EDIT FINAL: J’ai installé git avec homebrew, tapé git config --global push.default simple et maintenant il prend mes informations d’identification même sans forcer l’utilisateur. C’est étrange. Merci à tous pour votre aide, vous êtes géniaux!

Je viens d’avoir ce problème au travail. Le git intégré fourni avec mac ou fourni lorsque vous installez les informations d’identification git des caches xcode dans le trousseau. Le correctif pour moi était de:

démarrer l’access au trousseau (lancer le projecteur via cmd + espace, taper le trousseau, appuyer sur entrée)

Sous le trousseau en haut à gauche, sélectionnez “login” Sous la catégorie à gauche, sélectionnez “mots de passe”

Trouvez le nom “github” et supprimez-le.

github vous identifie par la clé ssh qu’il voit, pas par un paramètre de git.

Par conséquent, vous devez vous assurer que la clé ssh de votre compte professionnel ne se trouve pas dans votre trousseau lorsque vous essayez de quitter votre compte personnel et inversement.

Utilisez ssh-add -l pour déterminer quelles clés se trouvent dans votre trousseau de clés, et ssh-add -d pour supprimer une clé de votre trousseau de clés, si elle fonctionne, supprimez la clé ssh indésirable de ~/.ssh/config .

la source

Malgré toutes les excellentes options offertes par les autres utilisateurs, le seul moyen de résoudre ce problème était de réinstaller complètement git et de taper git config --global push.default simple pour pouvoir réécrire de bonnes références.

il semble que mon terminal effectue les commits avec mon nom d’utilisateur, mais les pousse avec l’autre

Le nom de l’auteur et du committer et le courrier électronique (qui sont importants pour GitHub) proviennent de:

 git config user.name git config user.email 

Cependant, comme mentionné dans git config et git commit-tree , ces variables peuvent être remplacées par des variables d’environnement:

 GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL 

Vérifiez donc ces variables.

Les choses fonctionnent normalement si je force l’utilisateur dans le .git/config d’un repository mais je ne pense pas que ce soit la bonne option.

Mais cela devrait être une bonne solution.
Lorsque vous utilisez une URL https, je spécifie toujours l’utilisateur pour m’assurer que l’authentification est effectuée avec le bon utilisateur.

 http://USER@github.com/USER/REPO.git 

Si vous utilisez MAC, accédez à Keychain Access et supprimez l’entrée de l’utilisateur pour laquelle vous ne souhaitez pas accéder à git.

Une solution temporaire est d’abord exécutée. killall ssh-agent puis append les clés ssh générées pour le compte dont vous avez besoin pour utiliser ssh-add ~/.ssh/id_4shameer

Cela nous aidera à travailler sur plusieurs comptes github lorsque nous aurons l’erreur de type ERROR: Permission to user/repo-git.git denied to username.

La solution pour moi était d’append une entrée dans mon fichier ~ / .ssh / config pour github. Je devais le faire parce que:

  1. J’ai eu plusieurs comptes github avec la même clé (ne le faites pas!)
  2. Lorsque vous utilisez “git push” avec ssh, votre ordinateur saisit id_rsa par défaut et l’utilise comme identité ssh.
  3. github ne peut pas (sans surprise) déconflire le compte que vous voulez dire, car il base le compte sur la clé qui lui est présentée, ce qui, associé à plusieurs comptes, génère de la douleur. Le tueur est, depuis longtemps, que je m’en sortais avec ça et que les choses venaient d’être réglées.

L’entrée que j’ai ajoutée est:

 Host github.com Hostname github.com Port 22 User waterproofpatch IdentityFile ~/.ssh/id_rsa_waterproofpatch 

J’avais créé une nouvelle clé, unique à mon compte, comme id_rsa_waterproofpatch. Cette entrée dans ma configuration ssh spécifie que pour les connexions à github.com, je souhaite présenter cette clé.

Une autre solution aurait probablement été que je me connecte à l’autre compte, supprimez la clé ssh en double.

effacer le trousseau n’a pas aidé … J’ai dû ssh-add -D et rappend la clé avec ssh-add

J’ai résolu ce problème en supprimant (ou en renommant * .bak) le fichier id_rsa et id_rsa.pub sur MacOS High Sierra. Idée d’ ici .

J’ai des redirections d’hôte personnalisées dans ~ / .ssh / config qui doivent être appliquées, mais j’ai utilisé un mauvais utilisateur avant de renommer les deux fichiers …