20 herbes méditerranéennes à pousser dans votre jardin
13 août 2020
Microsoft annonce des précommandes pour le téléphone Surface Duo à 1399 $ – Review Geek
13 août 2020

Logo Git

Si vous avez essayé d'utiliser Git avec plusieurs fournisseurs différents, ou avec plusieurs comptes différents, vous pouvez rencontrer des problèmes avec les deux authentifiés en même temps. Voici comment gérer deux comptes sans rencontrer de conflits.

Comment Git gère les comptes

La première chose à comprendre est que Git est entièrement local: votre dépôt Git local n'est pas contrôlé par le serveur sur lequel vous utilisez pour stocker le code. Il se connecte uniquement au référentiel distant lors de l'envoi ou de l'extraction de mises à jour. Quand il fait cela, il utilise les détails de votre compte Git.

Les seuls détails qu'il utilise pour ce faire sont votre adresse e-mail et votre nom d'utilisateur. Le mot de passe du compte est demandé à chaque fois, ou stocké dans le trousseau, ou non pertinent si vous utilisez des clés SSH (ce que vous devriez). Si votre nom d'utilisateur est différent de celui du compte pour lequel vous avez des identifiants, vous ne pourrez pas pousser ou tirer tant que vous ne l'aurez pas résolu. Dans certains cas, si vous utilisez le même e-mail pour différents comptes, le push peut passer mais apparaître avec un nom d'utilisateur différent dans les commits, ce qui peut ne pas être idéal.

Ces détails sont définis dans gitConfig. Vous avez probablement dû exécuter les commandes suivantes pour modifier le nom de votre compte utilisateur et votre adresse e-mail:

git config --global user.name nom d'utilisateur
git config --global user.email email

Cela définira la configuration globale sur le nouveau nom d'utilisateur et l'adresse e-mail. Cependant, un autre problème est le résultat. Comme il le définit globalement, si vous souhaitez extraire un projet sur un autre compte, vous interrompez les paramètres de vos autres référentiels.

La solution consiste à définir une configuration personnalisée pour chaque référentiel qui utilise un compte différent. Définissez votre nom d'utilisateur global et votre adresse e-mail sur votre compte le plus souvent utilisé, car ce sera la valeur par défaut pour tous les nouveaux référentiels et référentiels sans aucune configuration.

Cependant, pour chaque dépôt utilisant un compte différent, vous souhaiterez omettre le
--global drapeau:

git config user.name nom d'utilisateur
git config user.email email

Cela remplace la configuration par défaut, donc même si vous modifiez votre compte par défaut, le compte local sera toujours utilisé pour ce référentiel.

Gestion des informations d'identification pour plusieurs comptes

Vous voudrez quand même utiliser des clés SSH pour Git, donc la gestion des identifiants ne devrait pas poser de problème. Il est parfaitement acceptable d’utiliser la même clé SSH partout. Votre clé SSH est liée à votre machine et, par conséquent, à votre identité. C'est différent d'un mot de passe; il n'y a aucun moyen de le casser sans pirater votre ordinateur personnel, ce qui est beaucoup moins susceptible de se produire qu'une violation de données.

Cependant, si vous devez utiliser différentes clés SSH pour une raison quelconque, il est possible de le faire. Tout d'abord, vous devez vous assurer que la clé SSH secondaire est chargée dans votre trousseau, généralement en modifiant ~ / .bashrc appeler ssh-add lorsque vous chargez le terminal:

ssh-add ~ / .ssh / secondaire

Sinon, vous devrez utiliser le -je drapeau et spécifiez le chemin de la clé à chaque fois.

Pour que Git utilise différentes clés pour différents comptes, vous devrez modifier ~ / .ssh / config et ajoutez un bloc hôte pour chaque compte:

# Compte personnel, - la configuration par défaut
Hébergeur github.com
  Nom d'hôte github.com
  Utilisateur git
  IdentityFile ~ / .ssh / id_rsa

# Compte professionnel-1
Hôte github.com:secondaire
  Nom d'hôte github.com
  Utilisateur git
  IdentityFile ~ / .ssh / secondaire

Cela utilisera différents fichiers de clés en fonction du nom d'hôte suivant git @ dans l'URL Git. Github ajoute votre nom d'utilisateur à l'URL Git, de sorte qu'il est facile de différencier les utilisateurs.

//]]>