Aller au contenu principal

Configuration initiale de Git

Module 00 30 min

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 :

NiveauPortéeEmplacement du fichierOption
SystèmeTous les utilisateurs de la machine/etc/gitconfig--system
GlobalUtilisateur actuel, tous les dépôts~/.gitconfig--global
LocalDé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 votre vrai email

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 :

  1. Allez dans Settings → SSH and GPG keys
  2. Cliquez sur New SSH key
  3. Donnez-lui un nom descriptif (ex : « Mon laptop 2026 »)
  4. Collez le contenu de la clé
  5. 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.name configuré
  • user.email configuré (identique à GitHub)
  • Éditeur par défaut configuré
  • init.defaultBranch = main
  • core.autocrlf configuré 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​