Ma méthode pour configurer mon identité Git
(benji.dog)Comment configurer mon identité Git
-
Introduction : cet article explique comment gérer une identité adaptée à son environnement de travail via la configuration Git. L’auteur a découvert une façon d’utiliser
includeIfpour inclure des fichiers selon certaines conditions. -
Configuration Git :
- Avec
includeIf, il est possible d’inclure différents fichiers de configuration Git selon un répertoire précis. - Par exemple, on peut configurer les répertoires Git sous
~/codepour inclure~/.config/git/personal, et ceux sous~/workpour inclure~/.config/git/work. - Chaque fichier contient des informations comme le nom d’utilisateur, l’e-mail ou la clé de signature.
- Avec
-
Configuration basée sur l’URL du remote :
- En utilisant
hasconfig:remote.*.url, on peut appliquer conditionnellement une configuration Git lorsqu’une URL de remote spécifique est présente. - Par exemple, dans les répertoires ayant un remote comme
github.com:orgname/**, on peut configurer l’utilisation de~/.config/git/config-gh-org.
- En utilisant
-
Configuration des clés SSH :
- Il faut configurer des clés SSH pour pouvoir faire des
pullet despushvers les remotes. - Dans le fichier
~/.ssh/config, on peut définirHostetIdentityFileafin d’utiliser une clé SSH adaptée à chaque remote. - Pour utiliser des
IdentityFiledifférents avec le mêmeHostname, il faut donner des valeursHostdistinctes.
- Il faut configurer des clés SSH pour pouvoir faire des
-
Utiliser la configuration SSH dans Git config :
- Pour utiliser une configuration SSH différente selon le dépôt, on peut remplacer les URL avec
insteadOfdans la config Git. - Par exemple, au lieu de
github.com:orgname, on peut utilisergh-work:orgnameafin d’appliquer la bonne configuration SSH.
- Pour utiliser une configuration SSH différente selon le dépôt, on peut remplacer les URL avec
-
Points à considérer :
- Cette approche peut avoir des limites, et l’auteur souhaite recueillir des retours sur l’existence éventuelle d’une meilleure méthode.
Références
- L’auteur s’est appuyé sur plusieurs articles de blog expliquant comment gérer plusieurs identités Git.
1 commentaires
Avis Hacker News
Explique comment distinguer les identités SSH et Git en utilisant un nom comme
gh-work. Tous les dépôts Git clonés avecgh-worksuivront la configuration degh-work.incet utiliseront la même clé de signature que la configuration SSHEn travaillant dans une startup, il y avait un collègue qui changeait chaque jour son identité pour un nom de conte de fées. Cela n’aidait pas beaucoup la forensic du contrôle de version, mais c’était peut-être une façon de rappeler qu’on peut mettre n’importe quoi dans la configuration d’identité
Suggère d’ajouter des alias d’identité dans
.gitconfig, afin d’exécuter les commandesgit config-companyougit config-personalaprès avoir initialisé ou cloné un dépôtExplique comment gérer facilement les sous-modules en configurant la commande SSH dans
~/.gitconfig, sans avoir à modifier~/.ssh/configPrésente une méthode de gestion de la configuration Git par répertoire avec
includeIfethasconfig:remote. C’est aussi utile lors du clonage de dépôtsRecommande vivement aux consultants d’utiliser un appareil séparé pour le travail, ou au minimum un utilisateur OS distinct. Utiliser un appareil personnel pour le travail peut être risqué
Explique comment gérer la configuration Git avec NixOS et home-manager. Utilise la condition
hasconfig:remotepour définir une adresse e-mail spécifiqueExplique comment conserver la complexité SSH dans
~/.sshet inclure des configurations séparées par client ou par projet. Lorsqu’il n’y a pas de nom d’hôte comme GitHub, un alias est attribuéExplique comment séparer le travail et le personnel avec
gitdir.hasconfig:remotechange vraiment la donneExplique comment gérer séparément les dépôts professionnels et personnels dans
~/devet~/src. Des fichiers de configuration Git différents sont inclus selon le cheminExplique comment configurer des fichiers
.gitconfigpersonnels et professionnels avec des adresses e-mail et des clés de signature différentes. La signature GPG est activée pour signer les commits