Par Anonyme (non vérifié) , 29 avril 2026

Introduction

Avant votre premier commit, Git doit savoir qui vous êtes. git config stocke des paires clé-valeur dans trois portées : system (tous les utilisateurs), global (votre compte utilisateur) et local (un dépôt unique). La portée globale est dans ~/.gitconfig sous Unix et %USERPROFILE%\.gitconfig sous Windows.

Identité

Définissez votre nom et votre adresse e-mail ; ils sont gravés dans chaque commit que vous faites :

git config --global user.name "Ada Lovelace"
git config --global user.email "[email protected]"

Éditeur et pager

Git lance votre éditeur pour les messages de commit et les rebases interactifs. Choisissez-en un que vous savez quitter :

git config --global core.editor "nano"
# ou
git config --global core.editor "code --wait"
# ou
git config --global core.editor "vim"

Nom de la branche par défaut

Depuis Git 2.28, vous pouvez définir la branche par défaut pour les nouveaux dépôts :

git config --global init.defaultBranch main

Fins de ligne

Pour éviter les surprises CRLF/LF dans les équipes multi-plateformes :

# Linux, macOS
git config --global core.autocrlf input

# Windows
git config --global core.autocrlf true

Alias utiles

git config --global alias.st status
git config --global alias.co checkout
git config --global alias.lg "log --oneline --graph --decorate --all"

Maintenant git lg donne un graphe compact de toutes les branches.

Inspecter la configuration

Lister toute la configuration avec ses fichiers d'origine, utile pour déboguer les surprises :

git config --list --show-origin
git config --get user.email

Comportement de pull

Depuis Git 2.27, le comportement par défaut de pull exige un choix explicite. Choisissez-en un :

git config --global pull.rebase false   # merge (par défaut)
git config --global pull.rebase true    # rebase
git config --global pull.ff only        # fast-forward uniquement

Inclusions conditionnelles

Git prend en charge la configuration par répertoire via includeIf. C'est la façon la plus propre de séparer les identités professionnelle et personnelle sans avoir à penser à définir une configuration locale dans chaque clone :

# dans ~/.gitconfig
[includeIf "gitdir:~/work/"]
  path = ~/.gitconfig-work

# dans ~/.gitconfig-work
[user]
  email = [email protected]
  signingkey = ssh-ed25519 AAAA...

Tout dépôt cloné sous ~/work/ reprend automatiquement l'identité professionnelle. Combinez avec des inclusions onbranch: pour cibler des paramètres sur des branches spécifiques.

Surcharges par dépôt

La configuration locale dans .git/config surcharge le fichier global. C'est le bon endroit pour les identités, hooks et clés de signature spécifiques au projet. Pour auditer la portée d'où provient un paramètre :

git config --show-origin --get user.email
git config --show-scope --get-all credential.helper

Si une valeur semble fausse, --show-origin vous indique exactement quel fichier la contient. Attention : system, global, local ou même la portée worktree peuvent masquer une autre. git config --list --show-origin dresse le tableau complet en une seule commande.

Erreurs fréquentes

Définir user.email sur une adresse personnelle tout en commitant pour le travail, exposant cette adresse sur des plateformes d'hébergement publiques. Utilisez la portée locale dans les dépôts professionnels pour surcharger la valeur globale : git config user.email "[email protected]". Autre classique : éditer ~/.gitconfig à la main et introduire une erreur de syntaxe qui casse toutes les commandes Git. Utilisez git config pour écrire des valeurs, et git config --list pour vérifier après chaque changement.