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
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.