Article original : How to Use Multiple Git Configs on One Computer

Par Dhruv Barochiya

Vous pourriez avoir du mal à gérer plusieurs chats, mais lorsqu'il s'agit de profils Git, il y a quelque chose que vous pouvez faire.

Passons directement à la solution – La réponse réside dans le fichier .gitconfig. C'est le point de départ pour Git afin d'identifier quelles configurations doivent être utilisées.

L'idée est de séparer les dépôts sur votre machine en plusieurs répertoires en séparant les profils que vous souhaitez, puis de définir un fichier .gitconfig par profil.

Étape 1 → créer des répertoires séparés pour les dépôts

Organisez les projets sur lesquels vous travaillez dans des dossiers séparés selon les profils avec lesquels vous souhaitez travailler.

Par exemple, disons qu'il y a deux profils Git avec lesquels vous travaillez. C'est un cas d'utilisation courant pour la plupart d'entre nous :

  • TRAVAIL → pour les projets liés au travail
  • PERSONNEL → pour les projets open source et les projets secondaires

Étape 2 → créer une configuration Git globale

Créez le fichier .gitconfig global dans votre répertoire personnel s'il n'existe pas déjà. Ensuite, ajoutez tous les répertoires de profils comme une entrée comme dans l'exemple ci-dessous.

Le fonctionnement est très intuitif – si le chemin du répertoire où vous avez créé le répertoire Git correspond à l'un des chemins dans includeIF, alors Git utilise ce fichier de configuration de profil particulier. Sinon, il utilise la configuration par défaut.

[includeIf "gitdir:~/personnel/"]
  path = ~/.gitconfig-personnel
[includeIf "gitdir:~/travail/"]
  path = ~/.gitconfig-travail

Étape 3 → créer des configurations Git individuelles pour les profils

Si vous ne l'avez pas remarqué jusqu'à présent, nous venons de mentionner les fichiers .gitconfig-personnel et .gitconfig-travail dans le fichier .gitconfig global, mais nous ne les avons pas encore créés. Ces fichiers individuels peuvent contenir toutes les personnalisations dont vous avez besoin, du nom d'utilisateur et de l'email aux hooks de commit.

[user]
 name = utilisateur_travail
 email = email_travail
[user]
 name = utilisateur_personnel
 email = email_personnel

Vérifions

Nous sommes prêts ! Maintenant, vous aurez trois fichiers Git dans votre répertoire personnel.

Image

Maintenant, nous allons créer et initier un nouveau dépôt Git dans les répertoires de travail et personnel et vérifier les configurations.

$ cd ~/travail
$ mkdir travail-test-depot
$ cd travail-test-depot
$ git init
        *Initialized empty Git repository in /Users/dbarochiya/travail/travail-test-depot/.git/*
$ git config -l   
        *credential.helper=osxkeychain
        includeif.gitdir:~/personnel/.path=~/.gitconfig-personnel
        includeif.gitdir:~/travail/.path=~/.gitconfig-travail
        **user.name=moi_travail
        user.email = travail@travail.com**
        core.repositoryformatversion=0
        core.filemode=true
        core.bare=false
        core.logallrefupdates=true
        core.ignorecase=true
        core.precomposeunicode=true*                                                                                                                   1
$ cd ~/personnel
$ mkdir personnel-test-depot
$ git init
    *Initialized empty Git repository in /Users/dbarochiya/personnel/.git/*
$ git config -l
    *credential.helper=osxkeychain
    includeif.gitdir:~/personnel/.path=~/.gitconfig-personnel
    **user.name=moi_personnel
    user.email=personnel@personnel.com**
    includeif.gitdir:~/travail/.path=~/.gitconfig-travail
    core.repositoryformatversion=0
    core.filemode=true
    core.bare=false
    core.logallrefupdates=true
    core.ignorecase=true
    core.precomposeunicode=true*

Voilà – comme vous pouvez le voir, l'email et le nom d'utilisateur sont différents dans les deux cas. Selon le chemin du dépôt Git, il est capable d'utiliser les fichiers .gitconfig personnalisés.