J'ai un problème avec git et mon terminal.
Voici une galerie pour vous montrer mon problème: http://imgur.com/a/6RrEY
Quand je pousse des 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 commit et il semble qu'il n'appartienne à personne: (vérifier la première photo de la galerie)
Mais cela ne se produit pas lorsque j'utilise Github pour mac, dans le flux, 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 l'autorisation de pousser des commits sur ces référentiels (ce qui est évidemment faux) car il essaie de le pousser avec cet utilisateur: (vérifier la deuxième photo de la galerie)
Devine quoi ? Cela ne se produit pas non plus avec Github pour mac.
J'ai changé mon ordinateur pour un tout nouveau il y a quelques jours, donc j'ai réinitialisé toute ma clé ssh de github et n'en ai laissé qu'une nouvelle générée par Github pour Mac, donc je ne pense pas qu'il y ait une clé utilisateur fantôme / ssh cachée quelque part, ce disque dur est tout neuf: (voir la troisième photo de la galerie)
Mon fichier .gitconfig est tout clair, il n'y a que mes informations d'identification: (vérifier la quatrième photo de la galerie)
Je ne comprends vraiment pas, aidez-moi, StackOverflow, vous êtes mon seul espoir.
(Mes excuses pour mes faibles compétences Gimp et la référence Star Wars)
ÉDITER : ssh-add -l
ne montre que la bonne clé ssh créée par github pour mac et je n'ai qu'un seul compte github
EDIT2: ssh -T [email protected]
reconnaissez-moi comme le bon utilisateur.
EDIT3: Après quelques tests, il semble que mon terminal fasse les commits avec mon nom d'utilisateur, mais les pousse avec l'autre, Github pour mac commits et pousse avec le bon nom d'utilisateur.Cette situation se produit avec chaque repo que j'ai / crée (même nouveau ceux).
EDIT4: Dans un référentiel personnel git log --pretty="%h %an %ae"
montre mon bon nom d'utilisateur
EDIT5: Aucun signe de variables d'environnement qui remplaceraient mes informations d'identification dans mon env
. Même si j'essaie de définir ces variables avec les bonnes informations d'identification, le problème persiste.
EDIT6: Les choses fonctionnent normalement si je force l'utilisateur sur le chemin /.git/config
d'un référentiel mais je ne pense pas que ce soit la bonne option:http://[email protected]/USER/REPO.git
EDIT7: Nous avons supprimé l'utilisateur git qui a poussé les commits pour moi et cela apporte une autre erreur: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 des gars formidables!
~/.gitconfig
et$project_root/.git/config
fichiers. L'un de ces deux est sûrement mal configuré pour le nom d'utilisateur.~/.gitconfig
est clair et est donc$project_root/.git/config
. En fait, j'ai ce problème avec chaque projet personnel, les projets de travail peuvent être poussés puisque cet autre utilisateur appartient à mon organisation qui possède ces référentiels.Réponses:
J'ai juste eu ce problème au travail. Le git intégré qui est livré avec mac ou qui vient lorsque vous installez xcode met en cache les informations d'identification git dans le trousseau. La solution pour moi était de:
démarrer l'accès au trousseau (démarrer le projecteur via cmd + espace, tapez trousseau, appuyez sur Entrée)
Sous les porte-clés en haut à gauche, sélectionnez «connexion». Sous la catégorie à gauche, sélectionnez «mots de passe»
trouvez le nom "github" et supprimez-le.
la source
seahorse
sur Ubuntu.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 n'est pas dans votre trousseau de clés lorsque vous essayez de pousser à partir de votre compte personnel et vice versa.
Utilisez
ssh-add -l
pour déterminer quelles clés se trouvent dans votre trousseau de clés etssh-add -d <keyfile>
pour supprimer une clé de votre trousseau de clés, si cela ne fonctionne pas, supprimez la clé ssh «indésirable»~/.ssh/config
.la source
NB: Github identifiera toujours votre commit en se basant uniquement sur l'e-mail.
la source
user.email
configuration correcte. J'aimerais pouvoir voter cinq fois.ssh-add -D
ssh-add -l
j'obtiens une réponse qui n'aide pas. Il tape,4096 SHA256:lotsOfGibberish,about40chars (RSA)
je ne sais pas comment nous utiliser ces informations.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 réécrire les bonnes informations d'identification.la source
git config --system --unset credential.helper
a fonctionné pour moi, on me demande maintenant mes informations d'identification GitHub sur push et je peux fournir l'ID utilisateur et le mot de passe corrects.git config --system --unset credential.helper
ne fonctionne pas sur Windows 10 git bash:error: could not lock config file C:/Program Files/Git/mingw64/etc/gitconfig: Permission denied
J'utilise Windows 10 et j'ai rencontré le même problème aujourd'hui. Dans mon cas, mes informations d'identification pour différents utilisateurs ont été enregistrées par le gestionnaire d'informations d'identification Windows. Suppression / désactivation des informations d'identification git avec la commande ci-dessous,
git config --global --unset credential.helper
n'a pas aidé. J'ai dû supprimer manuellement l'entrée dans Windows en suivant la méthode ci-dessous,
Démarrer -> Panneau de configuration ---> Comptes d'utilisateurs ---> Gérer vos informations d'identification ---> Informations d'identification Windows
Recherchez ensuite une entrée comme, git: https://github.com et supprimez-la. Cela fonctionne bien après cela.
la source
Le nom et l'adresse e-mail de l'auteur et du commetteur (qui sont importants pour GitHub) sont dérivés de:
Cependant, comme mentionné dans
git config
etgit commit-tree
, ces valeurs peuvent être remplacées par des variables d'environnement:Alors revérifiez ces variables.
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.
la source
git config
informations d'identification sont correctes et il n'y a aucune variable d'environnement définie dans mon/username/.bashrc
fichier ...env
' sortie.http://[email protected]/USER/REPO.git
Une solution temporaire est d'abord exécutée
killall ssh-agent
puis ajoutez les clés ssh générées pour le compte que vous devez utiliserssh-add ~/.ssh/id_4shameer
Cela nous aidera à travailler sur plusieurs comptes github lorsque nous obtiendrons l'erreur de type
ERROR: Permission to user/repo-git.git denied to username.
la source
killall
, l' agent ssh doit être redémarré aveceval "$(ssh-agent -s)"
et lassh-add
commande doit être exécutée avecsudo
.Si vous utilisez MAC, accédez à Keychain Access et supprimez l'entrée de l'utilisateur pour lequel vous ne souhaitez pas accéder à git.
la source
La solution pour moi était d'ajouter une entrée dans mon fichier ~ / .ssh / config pour github. J'ai dû faire ça parce que:
L'entrée que j'ai ajoutée est:
J'avais créé une nouvelle clé, unique à mon compte, sous le nom 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é pour moi de me connecter à l'autre compte, de supprimer la clé ssh en double.
la source
J'ai eu un problème similaire et il s'est avéré que le problème était le fait que le fichier de clé publique contenait mon adresse e-mail sur la dernière ligne. Cela semblait remplacer le paramètre Utilisateur dans ma configuration. Dès que j'ai supprimé mon e-mail du fichier .pub (et re-téléchargé dans mon dépôt), Git s'est connecté en utilisant le bon utilisateur.
la source
Ce qui a fonctionné pour moi était d'utiliser l' URL https du dépôt Github au lieu de l' URL ssh . Je suis allé sur la page du projet Github et j'ai copié l'URL https dans mon presse-papiers, puis je l'ai collée dans la deuxième commande ci-dessous:
la source
Quelle douleur dans le cul!
problème:
tourne pour une raison inconnue git push utilisait le mauvais utilisateur. J'ai quelques identifiants d'utilisateur git hub différents. Je travaille pour 2 entreprises différentes et j'ai également une carte d'étudiant
Je travaille sur un mac. voici ce que j'ai finalement fait
1) Retirez les informations d'identification.
une. vous devez déterminer où le credential.helper est configuré
b. une fois trouver le fichier fig correct, retirez-le comme suit
Maintenant, dans mon dépôt local, j'ai piraté le fichier .git / config
j'ai changé
à
la source
Dans mon cas particulier, le problème était que j'utilisais un
.netrc
pour accédergithub.com
et qu'il était configuré avec un jeton d'un autre utilisateur:la source
effacer le trousseau n'a pas aidé ... J'ai dû
ssh-add -D
et rajouter la clé avecssh-add <keyfile>
la source
J'ai résolu ce problème en supprimant (ou en renommant * .bak) les fichiers 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 devraient être appliquées mais utilisées par un mauvais utilisateur avant de renommer les deux fichiers ...
la source
C'est ce qui a fonctionné pour moi:
la source
Ce qui a fonctionné pour moi en supprimant le dépôt et en l'ajoutant à nouveau:
la source
J'ai le même problème dans Windows10 même après avoir désinstallé mon git, comme @ user542833 le dit, c'est parce que le cache Windows et que vous devez supprimer les informations d'identification Github dans vos fenêtres
Credential Manager
et lorsque vous essayez à nouveau de pousser, Windows vous demande vos informations d'identification et le redéfinitla source
Je viens de passer 6 heures à comprendre cela en essayant de pousser vers un nouveau repo de pages GitHub sur un nouveau compte.
Même après avoir défini la configuration user.name et user.email, il serait par défaut mon compte principal.
C'est parce que la clé ssh sera par défaut id_rsa (mon compte principal).
Pour utiliser le nouveau compte, je devais exécuter:
ssh-add ~/.ssh/my_new_key
ce qui obligera git à utiliser la nouvelle clé en appuyant sur.
la source