Leçon 4 / 8
Leçon 04 · Partie 1 — Les bases

Lire l'historique

Ton projet a une mémoire

Chaque commit que tu fais est enregistré pour toujours. Git te donne des outils pour explorer cet historique. Comprendre les modifications passées, voir ce qui a changé, retrouver quand un bug a été introduit.

git status — l'état actuel

git status, c'est ta boussole. Lance-la souvent. Elle te montre :

  • Sur quelle branche tu es
  • Quels fichiers ont été modifiés mais pas encore stagés
  • Quels fichiers sont stagés et prêts à être commités
  • Quels fichiers ne sont pas suivis par Git (untracked)
Terminal
git status

# On branch main
# Changes not staged for commit:
#   modified:   index.html
# Untracked files:
#   style.css

git log — l'historique des commits

git log affiche tous les commits du plus récent au plus ancien. Chaque commit a un identifiant unique (le hash), un auteur, une date et un message.

Terminal
git log

# commit a3f2c1b9d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9
# Author: Alice <alice@example.com>
# Date:   Mon Apr 14 10:23:45 2025
#
#     Ajout du menu de navigation

Le hash long (40 caractères) identifie chaque commit de façon unique dans l'univers. Tu peux utiliser juste les 7 premiers caractères dans la plupart des commandes.

git log en version compacte

Terminal
# Une ligne par commit — bien plus lisible
git log --oneline

a3f2c1b Ajout du menu de navigation
e9d4a7f Correction bug formulaire
12bc890 Première page d'accueil
4d5e6f7 Initialisation du projet

# Avec graphe des branches
git log --oneline --graph

git log --oneline est ta meilleure amie. Tape q pour quitter l'affichage si c'est trop long.

git diff — voir les modifications

git diff montre exactement ce qui a changé dans les fichiers modifiés. Les lignes en rouge avec - ont été supprimées. Les lignes en vert avec + ont été ajoutées.

Terminal
# Voir les changements non-stagés
git diff

# diff --git a/index.html b/index.html
# @@ -1,3 +1,4 @@
#  <h1>Mon titre</h1>
# -<p>Ancien texte</p>
# +<p>Nouveau texte amélioré</p>
# +<p>Un paragraphe ajouté</p>

Variantes utiles de git diff

Terminal
# Voir les changements stagés (pas encore commités)
git diff --staged

# Comparer avec un commit précis
git diff a3f2c1b

# Comparer deux commits
git diff a3f2c1b e9d4a7f

Revenir à un commit précédent

Tu veux juste voir ton projet dans un état passé ?

Terminal
# Voir le projet tel qu'il était à ce commit
git checkout a3f2c1b

# Revenir à l'état actuel
git checkout main
⚠️

Quand tu fais git checkout sur un commit, tu es en mode "detached HEAD". Tu peux regarder mais pas modifier. Retourne sur main pour reprendre le travail normal.

// À retenir
  • git status : état actuel (modifié, stagé, untracked). Lancer souvent.
  • git log --oneline : liste compacte de l'historique. Le hash = identifiant unique du commit.
  • git diff : voir exactement ce qui a changé. Rouge = supprimé, vert = ajouté.
  • git diff --staged : voir les changements déjà stagés.
  • git checkout <hash> pour visiter un commit passé. git checkout main pour revenir.