Configuration initiale de Git
Objectifs de la section
- Configurer votre identité Git (nom et email)
- Définir votre éditeur préféré
- Comprendre les 3 niveaux de configuration Git
- Créer des alias utiles
- Configurer l'authentification par clé SSH pour GitHub
Les 3 niveaux de configuration
Git dispose de 3 niveaux de configuration, du plus spécifique au plus général :
| Niveau | Portée | Emplacement du fichier | Option |
|---|---|---|---|
| Système | Tous les utilisateurs de la machine | /etc/gitconfig | --system |
| Global | Utilisateur actuel, tous les dépôts | ~/.gitconfig | --global |
| Local | Dépôt actuel uniquement | .git/config | --local |
Un niveau plus spécifique remplace un niveau plus général.
Configuration essentielle
1. Votre identité
C'est la configuration la plus importante — chaque commit utilisera ces informations :
git config --global user.name "Votre Nom Complet"
git config --global user.email "votre.email@exemple.com"
Utilisez le même email que votre compte GitHub. GitHub utilise cet email pour attribuer les commits à votre profil. Si les emails ne correspondent pas, vos commits n'apparaîtront pas sur votre graphe de contributions.
2. Éditeur par défaut
Git ouvre un éditeur pour les messages de commit. Configurez VS Code :
# VS Code (recommandé)
git config --global core.editor "code --wait"
# Vim (par défaut sur de nombreux systèmes)
git config --global core.editor "vim"
# Nano (plus simple que Vim)
git config --global core.editor "nano"
# Notepad++ (Windows)
git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
3. Nom de branche par défaut
GitHub utilise maintenant main comme nom de branche par défaut (anciennement master) :
git config --global init.defaultBranch main
4. Fins de ligne
Important pour éviter les problèmes entre Windows et macOS/Linux :
# Windows
git config --global core.autocrlf true
# macOS / Linux
git config --global core.autocrlf input
5. Stratégie de pull par défaut
# Recommandé : rebase lors du pull (historique plus propre)
git config --global pull.rebase true
# Alternative : merge lors du pull (traditionnel)
# git config --global pull.rebase false
Alias utiles
Les alias vous permettent de créer des raccourcis pour les commandes fréquemment utilisées :
# Statut court
git config --global alias.st status
# Log compact avec graphe
git config --global alias.lg "log --oneline --graph --decorate --all"
# Log court
git config --global alias.ll "log --oneline -10"
# Lister les branches
git config --global alias.br "branch -a"
# Commit rapide (stage tout + commit)
git config --global alias.cam "commit -am"
# Annuler le dernier commit (garder les changements)
git config --global alias.undo "reset HEAD~1 --mixed"
# Afficher ce qui sera poussé
git config --global alias.outgoing "log @{u}.. --oneline"
Utilisation après création de l'alias :
git lg # au lieu de : git log --oneline --graph --decorate --all
git st # au lieu de : git status
git ll # affiche les 10 derniers commits
Voir votre configuration
# Afficher toute la config active (niveaux fusionnés)
git config --list
# Afficher uniquement la config globale
git config --global --list
# Afficher une valeur spécifique
git config user.name
git config user.email
# Éditer le fichier de config globale directement
git config --global --edit
Exemple de fichier .gitconfig
[user]
name = Alice Dupont
email = alice@exemple.com
[core]
editor = code --wait
autocrlf = input # ou true sur Windows
[init]
defaultBranch = main
[pull]
rebase = true
[alias]
st = status
lg = log --oneline --graph --decorate --all
ll = log --oneline -10
br = branch -a
cam = commit -am
undo = reset HEAD~1 --mixed
[color]
ui = auto
Configuration de l'authentification SSH
Utiliser SSH est plus sécurisé et pratique qu'un mot de passe pour GitHub (pas de demandes d'authentification répétées) :
Générer une clé SSH
# Générer une clé Ed25519 (recommandée, moderne et sécurisée)
ssh-keygen -t ed25519 -C "votre.email@exemple.com"
# Si votre système ne supporte pas Ed25519, utilisez RSA :
ssh-keygen -t rsa -b 4096 -C "votre.email@exemple.com"
Lorsque vous êtes invité :
- Emplacement du fichier : Appuyez sur Entrée pour la valeur par défaut (
~/.ssh/id_ed25519) - Phrase de passe : Choisissez une phrase de passe solide (recommandée) ou laissez vide
Ajouter la clé SSH à l'agent
# Démarrer l'agent SSH
eval "$(ssh-agent -s)"
# Ajouter votre clé
ssh-add ~/.ssh/id_ed25519
Ajouter la clé publique à GitHub
# Afficher votre clé publique pour la copier
cat ~/.ssh/id_ed25519.pub
Puis sur GitHub :
- Allez dans Settings → SSH and GPG keys
- Cliquez sur New SSH key
- Donnez-lui un nom descriptif (ex : « Mon laptop 2026 »)
- Collez le contenu de la clé
- Cliquez sur Add SSH key
Tester la connexion SSH
ssh -T git@github.com
# Attendu : Hi username! You've successfully authenticated...
Configurer la signature GPG (Optionnel)
Pour une sécurité maximale, vous pouvez signer vos commits avec une clé GPG. Cela prouve que les commits viennent vraiment de vous :
# Générer une clé GPG
gpg --full-generate-key
# Choisissez : RSA et RSA, 4096 bits, pas d'expiration
# Lister vos clés pour obtenir l'ID de la clé
gpg --list-secret-keys --keyid-format=long
# Configurer Git pour utiliser votre clé
git config --global user.signingkey VOTRE_ID_CLE
git config --global commit.gpgsign true
Checklist récapitulative
-
user.nameconfiguré -
user.emailconfiguré (identique à GitHub) - Éditeur par défaut configuré
-
init.defaultBranch = main -
core.autocrlfconfiguré pour votre OS - Alias utiles ajoutés
- Clé SSH générée et ajoutée à GitHub
- Connexion SSH testée (
ssh -T git@github.com)
Prochaines étapes
- Votre premier dépôt — Appliquez cette configuration sur votre premier vrai dépôt
- TP1 - Installation & Config — Lab d'installation et de configuration