{{tag>git dev config configuration}}
===== Configuration des dépots Git ======
La commande **git config** permet de personnaliser/spécifier le comportement par défaut de git
===== Afficher la configuration =====
Pour lister la configuration actuellement définie:
git config --list
===== Portée des définitions =====
Les déclarations des variables de configuration peuvent être faites à différents niveaux:
^ %%--system%% | Variables /etc/git/config |
^ %%--global%% | Variables définies pour tous les projet de l'utilisateur ~/.gitconfig |
^ %%--local%% | Variables définies sur le projet courant .git/config |
===== Paramètres utilisateur =====
Les variables **user.*** permettent de définir l'identité du développeur.
Lors de l'utilisation de gitlab, le nom d'utilisateur, le mail, la clé GPG doivent correspondre a ceux déclarés sur le compte en ligne gitlab.
==== Afficher l'identité définie localement ====
Sans argument de modification de la portée, c'est la valeur définie localement qui est affichée:
$ git config user.name
Toto
$ git config --global user.name
Yoann BEZILLE
Dans l'exemple ci dessus, pour le dépot courant l'utilisateur déclaré est Toto, la valeur globale est définie à "Yoann BEZILLE". Les commits pour ce dépôt seront marqués comme provenant de Toto. Pour d'autres dépôts sur la même machine, si la variable n'est pas définie localement c'est la portée globale qui sera visible, ils seront alors marqués comme émis de "Yoann BEZILLE"
==== Définir son identité ====
git config --global user.name "Yoann BEZILLE"
git config --global user.email contact@example.org
==== Définir la clé GPG pour signature du travail ====
Pour signer le commit, il faut au préalable indiquer à Git quelle clé privée doit être utilisée pour la signature. Le détail d'application de la signature est abordée dans le wiki [[ dev:git:signer_son_travail | signer son travail dans Git]].
Lister les clés privées enregistrées dans GPG, repérer l'identifiant de la clé à utiliser, c'est celle-ci qu'il faut renseigner pour la variable **user.signingkey**
gpg2 --list-secret-keys --keyid-format LONG
L'identifiant est une chaîne hexadécimale, on définit la valeur de la variable **user.signingkey** avec cette chaîne:
git config --global user.signingkey KEY_ID
# Spécifier le programme à utiliser, peut éviter certaines erreurs
git config --global gpg.program gpg2
# Pour signer systématiquement les commits
git config --global commit.gpgsign true
===== Ignorer certains fichiers =====
Pour préciser à git que certains fichiers n'ont pas a être suivis on dispose de deux fichiers:
* le fichier **.gitignore** est inclus au dépôt, il est partagé avec tous. Il permet de définir des exclusions valables pour tous.
* le fichier **.git/info/exclude** permet de définir des exclusions localement. Ce paramétrage est particulièrement utile pour des fichiers que les autres utilisateurs ne sont pas amenés à créer.
===== Définir l'éditeur par défaut =====
Git lit les variables d'environnement $VISUAL et EDITOR pour déterminer l'éditeur de l'utilisateur. On peut déclarer explicitement son éditeur via la commande suivante:
git config --global core.editor vim
===== Renommer la branche principale =====
Lors de la création du dépôt, le nom de la branche principale est **master**. Cette convention tend à disparaitre et on recommande en général la nommer 'main' ou 'trunk'.
Pour que la branche principale soit main lors de la création de tous vos dépôt :
git config --global init.defaultBranch main
Lorsqu'un dépôt vient d' être créer on peut aussi simplement renommer la branche principale via la commande
git branch -m trunk
Ce sont de pures conventions : le nom de la branche principale peut être quelconque.
===== Les alias =====
Confère wiki syntaxe de [[ dev:git:alias|définition d'alias Git ]].
===== Références =====
* https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work
* https://help.github.com/articles/ignoring-files/