J’ai deux vies Git : une pro (Gitlab d’entreprise, email pro, clé SSH pro) et une perso (GitHub perso, email perso, clé SSH perso). Avant d’utiliser ce qui suit, il m’est arrivé de devoir réécrire l’historique git parce que j’avais commit avec la mauvaise identité.
includeIf règle ça. On définit une config différente selon le chemin
du repo.
# ~/.gitconfig
[includeIf "gitdir:~/dev/michelin/"]
path = ~/.gitconfig-michelin
[includeIf "gitdir:~/dev/perso/"]
path = ~/.gitconfig-perso
Et chaque fichier ne contient que les différences :
# ~/.gitconfig-michelin
[user]
name = Florent Bissirieix
email = florent.bissirieix@michelin.com
[core]
sshCommand = "ssh -i ~/.ssh/id_ed25519_michelin"
# ~/.gitconfig-perso
[user]
name = flobsx
email = flobsx@gmail.com
signingkey = 6E4F7A9B
[commit]
gpgsign = true
Le piège : gitdir: matche le début du chemin. ~/dev/perso/ ne
matchera PAS ~/Documents/dev/perso/. Le / final est important.
Et gitdir/i (insensible à la casse) existe aussi si on travaille
sur macOS.