3 points par GN⁺ 2024-11-26 | 1 commentaires | Partager sur WhatsApp

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 includeIf pour 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 ~/code pour inclure ~/.config/git/personal, et ceux sous ~/work pour inclure ~/.config/git/work.
    • Chaque fichier contient des informations comme le nom d’utilisateur, l’e-mail ou la clé de signature.
  • 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.
  • Configuration des clés SSH :

    • Il faut configurer des clés SSH pour pouvoir faire des pull et des push vers les remotes.
    • Dans le fichier ~/.ssh/config, on peut définir Host et IdentityFile afin d’utiliser une clé SSH adaptée à chaque remote.
    • Pour utiliser des IdentityFile différents avec le même Hostname, il faut donner des valeurs Host distinctes.
  • 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 insteadOf dans la config Git.
    • Par exemple, au lieu de github.com:orgname, on peut utiliser gh-work:orgname afin d’appliquer la bonne configuration SSH.
  • 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

 
GN⁺ 2024-11-26
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 avec gh-work suivront la configuration de gh-work.inc et utiliseront la même clé de signature que la configuration SSH

  • En 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 commandes git config-company ou git config-personal après avoir initialisé ou cloné un dépôt

  • Explique comment gérer facilement les sous-modules en configurant la commande SSH dans ~/.gitconfig, sans avoir à modifier ~/.ssh/config

  • Présente une méthode de gestion de la configuration Git par répertoire avec includeIf et hasconfig:remote. C’est aussi utile lors du clonage de dépôts

  • Recommande 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:remote pour définir une adresse e-mail spécifique

  • Explique comment conserver la complexité SSH dans ~/.ssh et 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:remote change vraiment la donne

  • Explique comment gérer séparément les dépôts professionnels et personnels dans ~/dev et ~/src. Des fichiers de configuration Git différents sont inclus selon le chemin

  • Explique comment configurer des fichiers .gitconfig personnels 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