Un ami et moi partageons mon ordinateur. J'ai fait des push sur GitHub en utilisant le shell git bash sur Windows 7. Nous sommes maintenant dans un projet différent sur cet ordinateur et j'ai besoin qu'elle pousse sur son compte. Mais il continue d'essayer d'utiliser mon nom d'utilisateur et de dire que je n'ai pas accès à son référentiel:
$ git push her_github_repository our_branch
ERROR: Permission to her_username/repository.git denied to my_username.
fatal: The remote end hung up unexpectedly
git config --global user.name her_username
) avant de poussergit config --local credential.helper ""
peut faire l'affaire.Réponses:
Si vous utilisez un utilisateur Windows différent, votre clé SSH et vos paramètres git seront indépendants.
Si ce n'est pas une option pour vous, votre ami doit ajouter votre clé SSH à son compte Github.
Bien que la solution précédente vous incitera à pousser comme vous-même, mais elle vous permettra de pousser dans son repo. Si vous ne le souhaitez pas et travaillez dans un dossier différent sur le même PC, vous pouvez configurer le nom d'utilisateur et l'e-mail localement dans un dossier avec git en supprimant l'
-g
indicateur de la commande config:Sinon, si vous passez au
https
protocole, Github vous demandera à chaque fois un nom d'utilisateur / mot de passe (sauf si vous utilisez un gestionnaire de mots de passe).la source
git config --global user.name "Mona Lisa"
Cela a fonctionné pour moi, il vous demandera le nom d'utilisateur et le mot de passe
la source
helper = cache --timeout=999999
mis sur mon.gitignore
et cela a fonctionné. Mais un moyen de réinitialiser cela sans changer une configuration locale, je me demande?credential.helper
, par exemple le magasin d'informations d'identification Windows. Cela signifie également qu'il demande un nom d'utilisateur / mot de passe chaque fois qu'il en a besoin, car rien n'est configuré, alors peut-être que vous pouvez également configurer lecredential.helper
pour mettre en cache à la place (voir la réponse de @Ciro Santilli) ou utiliser une réponse différente ici.Vous pouvez pousser avec en utilisant un compte différent. Par exemple, si votre compte est A qui est stocké dans .gitconfig et que vous souhaitez utiliser le compte B qui est le propriétaire du repo que vous souhaitez pousser.
Compte B : B_user_name, B_password
Exemple de lien SSH: https://github.com/B_user_name/project.git
Le compte push avec B est:
Pour voir le compte dans .gitconfig
$git config --global --list
$git config --global -e
(pour changer de compte aussi)la source
user.name
,user.email
dans la configuration locale, j'ai cloné avec le nom d'utilisateur, et ne fonctionne pas; maintenant, la dernière réponse fonctionne sans toucher le trousseau / quoi que ce soit ... dansGit 2.9.0 in Windows
. "enfin mais non des moindres" .. c'est comme ça qu'on l'appelle. Je vous remercie. Cette réponse mérite plus de votes positifs.https://'B_user_name'@github.com/B_user_name/project.git
. Cela devrait demander le mot de passe deB_user_name
.J'ai configuré un alias ssh en utilisant un personnalisé
IdentityFile
et réécrit l'origine pour utiliser monme-github
nom d'hôte personnalisé .la source
git remote set-url origin git@user1-github:user1/my-repo.git
😊Si vous utilisez une URL SSH (
[email protected]:username/projectname.git
) plutôt qu'une URL HTTPS, vous pouvez temporairement spécifier une clé SSH différente à l'aide de la$GIT_SSH_COMMAND
variable d'environnement:Pour autant que je sache, avec les URL SSH, GitHub ne se soucie pas des noms d'utilisateurs, uniquement des clés: si un compte utilisateur a accès à un référentiel et que ce compte a une clé SSH (voir la page des clés SSH dans le compte settings), alors si vous utilisez cette clé SSH pour pousser vers ce référentiel, le push sera traité comme venant de cet utilisateur.
la source
user.name
etuser.email
dansgit config
changera le compte auquel un commit est liéSi après l'exécution de
git push
Git demande un mot de passe deuser
, mais que vous souhaitez pousser commenew_user
, vous pouvez utilisergit config remote.origin.url
:À ce stade, utilisez
^C
pour quittergit push
et utilisez le suivant pour pousser commenew_user
.la source
git config remote.origin.url https://[email protected]/different_user/repo.git
C'est simple lors du clonage, veuillez prendre l'URL git avec votre nom d'utilisateur.
Par exemple:
git clone https: //[email protected]/username/reponame.git
git clone https: //[email protected]/username/reponame.git
la source
fatal: repo not found
.si c'est ton problème
En plus de changer le nom d'utilisateur et l'e-mail du terminal à l'aide de git config:
vous devrez supprimer les informations d'autorisation du trousseau. Cette solution m'a pris plusieurs heures à comprendre, j'ai découvert que j'avais également un certificat dans mon trousseau.
Ouvrez l'accès au trousseau, cliquez sur Tous les éléments et recherchez git. Supprimer tout le trousseau
la source
J'utilise une machine pour pousser le code vers deux comptes GitHub différents avec un nom d'utilisateur différent. En supposant que vous ayez déjà configuré un compte et que vous souhaitiez en ajouter un nouveau:
ssh-keygen -t rsa -C "[email protected]"
id_rsa
. Donnez-lui un nom différent, par exempleid_rsa_another
ssh-add ~/.ssh/id_rsa_another
touch ~/.ssh/config
et modifiez le fichier en fournissant des configurations à vos comptes:Maintenant, vous devriez pouvoir pousser à partir de différents comptes en fonction de la clé que vous ajoutez à l'agent ssh, c'est-à-dire pour utiliser votre premier compte, faites
ssh-add ~/.ssh/id_rsa
.Vous pouvez également modifier votre adresse e-mail utilisateur:
git config --global user.email "[email protected]"
ou nettoyez les clés ssh en cas d'erreur d'autorisation lors de la pusation du code sur l'un des comptes:
ssh-add -D
la source
git push
ne marche pas? Vous devriez pouvoir appuyer après avoir ajouté votre cléAccédez à Credential Manager Accédez aux informations d'identification Windows Supprimez les entrées sous Informations d'identification génériques Essayez de vous reconnecter.
la source
Control Panel\All Control Panel Items\Credential Manager
->Windows Credentials
.Comme mentionné précédemment, vous pouvez utiliser
pour définir manuellement le nom d'utilisateur et l'adresse e-mail pour un dépôt unique, mais vous devez ajouter cette commande:
si vous avez déjà essayé de pousser avant le changement. Sinon, les modifications n'apparaissent pas dans le fichier de configuration.
la source
--reset-author
(avec--
...) mettra le dernier nom / e-mail configuré sur le dernier commit, ainsi que le dernier horodatage. Cela n'affecte pas les changements dans le fichier de configuration.Vous pouvez ajouter une nouvelle URL distante pour l'autre nom d'utilisateur en utilisant
git remote add origin-username https://[email protected]/repository_name.git
Après cela, si vous poussez en utilisant
git push -u origin-username master
, cela vous demandera le mot de passe.la source
git config user.name ne change que le nom que je valide. Je ne peux toujours pas pousser. C'est ainsi que j'ai résolu le problème et je pense que c'est un moyen facile pour moi.
Générez une clé SSH sous le nom d'utilisateur que vous souhaitez pousser sur l'ordinateur que vous utiliserez https://help.github.com/articles/connecting-to-github-with-ssh/
Ajoutez cette clé au compte d'utilisateur github que vous souhaitez pousser vers https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/
Choisissez de cloner avec SSH
Vous pouvez maintenant envoyer cet utilisateur à ce dépôt.
la source
Si sous Windows et l'utilisateur Git pour Windows et
manager
pour la gestion des informations d'identification (akaGit-Credential-Manager-for-Windows
Link ), le problème est qu'il n'y a pas de moyen facile de basculer entre les utilisateurs lors du transfert vers GitHub enhttps
utilisantOAuth
jetons.La raison en est que le jeton est stocké sous la forme:
git:https://github.com
Personal Access Token
OAuth_Token
Les variations de l'URL dans
Internet Address
ne fonctionnent pas, par exemple:git:https://[email protected]
git:https://github.com/username
La solution: les espaces de noms . Cela se trouve dans les détails de la configuration du
Git-Credential-Manager-for-Windows
:En citant:
Maintenant, stockez vos informations d'identification dans le Gestionnaire d'informations d'identification Windows comme:
git.username:https://github.com
Personal Access Token
OAuth_Token
Notez que nous avons changé:
git
->git.username
(où vous changezusername
votre nom d'utilisateur réel ou pour le plaisir, en ce que vous voudrez peut-être comme identifiant unique)Maintenant, dans le référentiel où vous souhaitez utiliser l'entrée spécifique, exécutez:
(Encore une fois ... remplacez-le
username
par la valeur souhaitée)Votre
.git/config
contiendra maintenant:Et voilà! Les bonnes informations d'identification seront extraites du magasin d'informations d'identification Windows.
Ceci, bien sûr, ne change pas quel utilisateur / e-mail envoie. Pour cela , vous devez configurer l'habituel
user.name
etuser.email
la source
git config credential.namespace git.username
comme mentionné (en remplaçant le nom d'utilisateur). Si vous appuyez la prochaine fois, git vous demandera les nouvelles informations d'identification pour le nom d'utilisateur.Je ne pouvais pas comprendre comment avoir une deuxième identité github sur une seule machine (aucune de ces réponses ne fonctionnait pour moi pour cela), mais j'ai compris comment être capable de pousser vers plusieurs comptes github différents comme moi-même.
Pousser avec le même nom d'utilisateur, mais vers différents comptes github
Configurez une deuxième clé SSH ( comme ça ) pour votre deuxième compte github
Changez de compte ainsi:
Push avec mon nouveau deuxième compte github
Push avec mon compte principal
la source
Si vous avez https://desktop.github.com/,
vous pouvez aller dans Préférences (ou Options) -> Comptes
, puis vous déconnecter et vous connecter.
la source
Suivez les étapes suivantes:
la source
L'ID utilisateur où la validation se produit est stocké dans le fichier de configuration.
aller en haut du référentiel vi .git / config
modifier la ligne d'url indiquée après "[remote" origin "] pour avoir l'ID utilisateur approprié
la source
Si vous utilisez ssh et obtenez
alors que vous ne voulez pas pousser comme Alice_username, assurez-vous qu'Alice_username n'a pas la clé ssh de votre ordinateur ajoutée à son compte github.
J'ai supprimé ma clé ssh du compte github d'Alice et le push a fonctionné.
la source