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 SettingsSSH 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