Comment utiliser plusieurs profils Git sur un même poste

Si vous utilisez le même poste pour vos projets pro et perso, vous avez déjà certainement été confronté à une problématique. En effet si l'adresse e-mail que vous utilisez pour GitHub est différente de l'adresse e-mail que vous devez utiliser pour projets clients, vous vous retrouvez alors dans le besoin de modifier vos configs avant de commiter afin que l'adresse mail associée au commit soit toujours la bonne

Comment utiliser plusieurs profils Git sur un même poste

Pourquoi ce problème ?

Quand vous configurez Git sur votre machine, vous allez devoir configurer en global l’adresse mail à utiliser pour vos configs Git.

  git config --global user.email user@email.com

C’est parfait lorsqu’on a pas besoin de commiter avec un email professionnel, mais lorsqu’on commence à travailler pour le compte d’un client, il est presque certain que l’entreprise vous demandera d’utiliser votre email d’entreprise. Cependant, il est parfaitement de conserver notre e-mail personnel pour nos projets personnels. Aujourd’hui, nous allons voir comment nous pouvons y parvenir et le faire une seule fois sans avoir à répéter le processus.

Configuration simple du .gitconfig

En utilisant la commande citée plus dessous, cela va configurer votre .gitconfig comme ceci.

# .gitconfig
[user]
  name = UserName
  email = user@email.com

De cette manière nous allons utiliser le même nom d’utilisateur et le même e-mail dans chacun de nos référentiels Git. Ainsi chaque commit sera effectué sous cette même identité.

Configuration de Multiple emails dans .gitconfig

Nous allons maintenant utiliser des inclusions conditionnelles qui nous permettre d’inclure une autre configuration basée sur la localisation des projets.

J’aime garder les choses organisées et garder mes projets personnels dans le répertoire de travail personnel et les projets liés au travail de mon entreprise dans le répertoire de travail. gitdir est un mot-clé utilisé pour faire correspondre l’emplacement du répertoire .git à une configuration fournie. Ainsi avec la configuration ci-dessous tous les répértoires qui seront placés sous le dossier perso utiliseront la configuration .gitconfig-perso et tous ceux placés sous le dossier pro utiliseront .gitconfig-pro comme extensions de la config global.

# .gitconfig
[includeIf "gitdir:~/perso/"]
  path = .gitconfig-perso
[includeIf "gitdir:~/pro/"]
  path = .gitconfig-pro
[user]
  name = UserName

Le contenu des deux fichiers de configuration supplémentaires est simplement la configuration Git de l’e-mail :

# .gitconfig-perso
[user]
  email = mon-email-perso@mail.com
# .gitconfig-pro
[user]
  email = mon-email-pro@mail.com

Conclusion

De cette manière vous pourrez commiter sans vous soucier de modifier l’email au préalable. Si vos projets sont correctement rangés dans les bons dossiers, les emails de vos commits seront correctement renseignés.