Comment avoir 2 users git sur un ordinateur?

Je veux m'entraîner en utilisant GitHub en faisant des requêtes d'extraction et en apprenant comment voir la différence de git entre différents users. Comment puis-je configurer un autre count user sur mon terminal dans macOS pour cela? Comment changer d'user?

Solutions Collecting From Web of "Comment avoir 2 users git sur un ordinateur?"

Il y a trois aspects à jouer en tant que second user.

1. Compte GitHub

Pour utiliser l'interface Web de GitHub en tant qu'user supplémentaire (par exemple, un fork de repository, soumettre une request d'extraction, postr des commentaires), vous devez vous connecter à un autre count. *

Astuce: Passer d'un count à un autre est difficile car vous devez vous déconnecter et vous connecter à chaque fois. Vous pouvez vous connecter à deux counts en même time à l'aide d'une window de navigation privée, d'un browser différent ou d'un profil de browser différent.

2. Authentification SSH

Un référentiel GitHub est accessible via HTTPS ou SSH. Les deux nécessitent une authentification, que GitHub utilise pour implémenter les niveaux d'autorisation . Je vais décrire comment cloner un référentiel avec SSH configuré pour s'authentifier en tant que second user.

Générer une nouvelle key SSH en utilisant ssh-keygen -f KEYFILEKEYFILE est le path vers la nouvelle key (par exemple ~ / .ssh / bob_rsa ).

Ajoutez la key SSH au count GitHub du deuxième user.

SSH doit être configuré pour utiliser ~ / .ssh / bob_rsa , mais uniquement lorsque vous essayez de cloner un référentiel en tant que second user. De cette façon, vous pouvez toujours cloner des repositorys en tant qu'user normal avec une key SSH que vous avez ajoutée à votre count GitHub normal. Différentes configurations peuvent être spécifiées en fonction du nom d'hôte, mais pour les référentiels GitHub, le nom d'hôte est toujours github.com . Pour spécifier des configurations pour seulement certains des référentiels clonés, ajoutez un alias d'hôte en ajoutant ce qui suit à ~ / .ssh / config ( crédit ):

 # alias for github.com with a custom SSH key Host bob.github.com HostName github.com IdentityFile ~/.ssh/bob_rsa 

J'ai utilisé le nom d'hôte bob.github.com , mais il peut s'agir de n'importe quelle string.

Vous pouvez maintenant cloner un repository GitHub en tant que second user en utilisant le nom d'hôte bob.github.com (ou n'importe quel nom d'hôte utilisé dans la configuration SSH):

 git clone git@bob.github.com:USER/PROJECT.git 

Si vous clonez un référentiel appartenant à votre premier user de cette manière, vous ne devriez pas être en mesure de pousser les validations jusqu'à ce que vous ajoutiez votre second user en tant que collaborateur .

Test de la configuration SSH

Si vous rencontrez des problèmes, vérifiez que SSH fonctionne en exécutant

 ssh git@bob.github.com 

(remplacez bob.github.com par le nom d'hôte dans la ligne Host XXX ).

La première fois que vous vous connectez à GitHub via SSH, vous devriez recevoir un message

 The authenticity of host 'github.com (192.30.253.113)' can't be established. RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. Are you sure you want to continue connecting (yes/no)? 

Tapez yes , puis appuyez sur ENTRÉE . (Pour les personnes soucieuses de la security, vérifiez d'abord que l'empreinte digitale est répertoriée sur la page Clés SSH de GitHub ).

Si votre configuration est correcte et que vous avez ajouté la key SSH au deuxième count GitHub en collant le contenu de ~ / .ssh / bob_rsa.pub dans la page "SSH and GPG Keys", vous devriez voir

 PTY allocation request failed on channel 0 Hi USER! You've successfully authenticated, but GitHub does not provide shell access. Connection to github.com closed. 

USER devrait être le nom du deuxième count.

Si vous avez également configuré l'access SSH pour votre count normal, vous devriez pouvoir exécuter

 ssh git@github.com 

et obtenez le même message mais où USER est le nom de votre count normal.

3. Métadonnées de l'auteur Git

Git stocke le nom et l'adresse e-mail de l'auteur avec chaque validation. GitHub utilise cette information pour afficher les avatars des users dans l'historique des validations par exemple. Il est sortingvial d'usurper cette information ( 1 , 2 ).

Le nom et l'adresse e-mail de l'auteur sont généralement stockés dans le file de configuration global ( ~ / .gitconfig ). Vous pouvez les replace par référentiel en exécutant les opérations suivantes dans le directory du référentiel:

 git config --local user.name "NAME" git config --local user.email "EMAIL" 

Remplacez NAME et EMAIL par le nom complet et l'adresse e-mail du deuxième user. L'indicateur --local modifie le file de configuration par référentiel ( .git / config dans le directory racine du référentiel), contrairement à l'indicateur --global qui modifie ~ / .gitconfig . La valeur par défaut est --local , donc en fait il pourrait être omis.

Maintenant vous avez un clone où vous êtes effectivement le deuxième user. Utilisez un autre clone (normal) pour travailler en tant que premier user.


* Fine print: Les conditions d'utilisation de GitHub n'autorisent qu'un seul count gratuit par personne.

Vous avez probablement configuré un user existant avec des commands comme

git config --global user.name <a username>

et

git config --global user.email <an email> .

Vous pouvez créer un clone distinct pour pousser et tirer depuis un dossier différent. Pour que les validations s'affichent sous des noms d'user distincts en fonction du dossier, utilisez

git config --local user.name <another username>

et

git config --local user.email <another email>

à partir du second clone.

L'option --local garantit que cela n'affecte que la deuxième copy.