Basculer entre les identités d’utilisateur dans un Git sur un ordinateur

J’ai un repository sur GitHub , appelons-le Repo-1 .

Je veux d’abord accéder à ce référentiel en tant qu’utilisateur Git par défaut .

Appelons cet utilisateur User-1 .

J’ai créé la paire de clés SSH , tout va bien, ça marche bien .


J’ai créé un autre repository sur GitHub , appelons-le Repo-2 .

Je n’ai apporté aucun changement à Git local , sur mon ordinateur portable. Aucun changement de configuration, rien.

Maintenant – Je veux cloner à partir de Repo-1 tant que User-2 (mais à partir du même ordinateur portable ).

Tout d’abord: est-ce possible à faire?

Est-ce que Git local sur un seul ordinateur portable peut basculer entre les “comptes utilisateurs” et se présenter comme User-2 ? Et puis, à partir de cette identité, clonez à partir de Repo-1, faites des changements, puis passez à Repo-1 ?

Si possible, comment puis-je faire cela?

Vous avez votre fichier global .gitconfig où vous avez déjà configuré vos clés SSH / informations utilisateur. Le fichier .gitconfig global est remplacé par un fichier gitconfig local – le fichier “config” dans votre dossier .git (s’il n’existe pas, vous devrez le créer).

Par exemple, vous pouvez copier le fichier .gitconfig dans le dossier .git (et le renommer en “config”) et simplement changer les lignes que vous voulez changer (probablement github.user et github.token) ou créer un nouveau fichier avec juste les deux lignes en elle.

Si vous préférez la ligne de commande “git config”, vous pouvez éviter tout ce qui bouge en omettant l’option “–global”.

Vous devez déterminer si vous avez deux paires de clés ssh, ou seulement deux e-mails que vous souhaitez utiliser. Une paire de clés ssh est liée aux comptes comme décrit ici .

Le ssh keypair (en particulier la clé privée) donne à votre client git la permission de se connecter à github, et donc la permission de pousser. Ceci est distinct de l’identité de l’utilisateur, qui est juste le courrier électronique dans vos messages de validation.

Si vous avez deux paires de clés ssh, chacune liée à un compte, suivez ces instructions pour créer un fichier ~/.ssh/config . La clé consiste à utiliser un hôte ssh psuedo différent pour chaque compte:

 # Default GitHub user (joe) Host github.com HostName github.com User git IdentityFile /Users/joe/.ssh/id_rsa # Client user (client) Host github-client HostName github.com User git IdentityFile /Users/joe/.ssh/id_rsa_client 

Vous utilisez ensuite deux télécommandes correspondantes:

 git clone [email protected]:joe/my_repo.git 

et

 git clone git@github-client:client/his_repo.git 

Si vous souhaitez simplement utiliser deux e-mails, vous pouvez simplement atsortingbuer à chaque clone un .git/config distinct avec les parameters [user] souhaités.