Comment avoir plusieurs profils Git ?

| 2 min de lecture

Avoir plusieurs profils Git en fonction du répertoire courant est pratique lorsque vous utilisez votre ordinateur pour différentes activités. Bien qu'il soit possible de modifier manuellement la configuration Git pour chaque répertoire, cela peut être fastidieux.

Dans cet article, je vais vous montrer comment avoir plusieurs profils Git en fonction du répertoire courant, en utilisant l'inclusion de fichiers de configuration Git de manière conditionnelle.

Comment faire ?

À la main

Alors oui, je pourrais modifier la configuration locale de Git pour chaque dépôt en faisant :

git config user.name "John Doe"
git config user.email johndoe@example.com

En omettant le flag --global ici, on va modifier uniquement la configuration Git pour le répertoire courant.

Ça fonctionne bien, mais ce n'est pas optimal, car je vais devoir faire la manipulation à chaque nouveau dépôt Git.

En utilisation l'inclusion de Git

Il est possible d'inclure des fichiers de configuration Git les uns dans les autres, mais surtout il est possible de faire ça de manière conditionnelle. La documentation officielle est très bien faite.

J'ai donc choisi d'avoir par défaut mon profil "perso" et d'inclure fonctionnellement le profil "pro" dans les dépôts se situant dans un répertoire donné.

J'ai décidé de mettre ces deux fichiers de configuration dans le dossier ~/.config/git/ mais vous pouvez les mettre où vous voulez.

J'ai donc créé un premier fichier git-work.conf avec ce contenu :

[user]
    name = Valentin Maerten
    email = xxxxxx@pubstack.io
    signingkey = xxxxxxxxx
[commit]
    gpgsign = true

et un autre fichier pour côté personnel git-personel.conf :

[user]
    name = Valentin Maerten
    email = xxxxxxxxx@gmail.com
    signingkey = xxxxxxxxxxx
[commit]
    gpgsign = true

Et pour finir, il faut modifier le ~/.gitconfig comme ceci :

[include]
    path = ~/.config/git/git-personal.conf
[includeIf "gitdir:~/dev/pubstack/"]
    path = ~/.config/git/git-work.conf

Il est bien entendu possible d'utiliser des glob pattern dans la condition, comme le spécifie la documentation officielle.

De cette manière, automatiquement, dès que je suis dans un sous-dossier du répertoire ~/dev/pubstack/ je vais utiliser mon profil professionel et sinon je vais utiliser mon profil personnel.

Conclusion

En utilisant la fonctionnalité d'inclusion conditionnelle de Git, il est facile de configurer plusieurs profils en fonction du répertoire courant. En ayant un fichier de configuration par profil, on peut facilement modifier les informations utilisateur pour chaque profil.

Cette méthode évite de devoir modifier la configuration locale de Git à chaque nouveau répertoire et il devient facile d'avoir plusieurs profils Git sur un même ordinateur.

Si vous constatez une coquille dans l'article, n'hésitez pas à me contacter sur Twitter. De la même manière, si vous souhaitez être au courant des prochains articles, vous pouvez me suivre sur Twitter.