Cours

Git & GitHub Leçon 3

Historique et retour en arrière

Consulter l'historique, voir ce qui a changé, et annuler une erreur sans paniquer.

20 min

À la fin de cette leçon, tu sauras

  • Lire l'historique avec git log
  • Voir les différences avec git diff
  • Annuler des modifications avec git restore et git revert

Lire l'historique

git log
git log --oneline
a3f9c21 Ajoute le formulaire de contact
7b2e104 Corrige le menu sur mobile
e91d0aa Ajoute la page d'accueil

Chaque commit a un identifiant unique (un « hash ») : a3f9c21 est sa version courte. Le plus récent est en haut.

Voir ce qui a changé

git diff                 # ce que tu as modifié mais pas encore préparé
git diff --staged        # ce qui est préparé pour le prochain commit
git show a3f9c21         # le contenu d'un commit précis

Les lignes ajoutées s'affichent avec un +, les lignes supprimées avec un -.

Annuler

  • Tu as abîmé un fichier et tu veux revenir à la dernière version enregistrée : git restore index.html ;
  • Tu as préparé un fichier par erreur : git restore --staged index.html le retire de l'index, sans toucher à ton travail ;
  • Un commit déjà enregistré pose problème : git revert a3f9c21 crée un nouveau commit qui fait l'inverse. L'historique reste complet et honnête.

Attention : git restore fichier efface définitivement les modifications non enregistrées de ce fichier. Vérifie avec git diff avant.

Astuce : tu croiseras aussi git reset --hard, qui réécrit l'historique. Il est dangereux, surtout sur un projet partagé : préfère git revert.

À toi de jouer

Ton dernier commit, d'identifiant 4c1d2e9, a cassé le site, qui est déjà partagé avec ton équipe. Tape dans le terminal les commandes pour :

  1. afficher l'historique en version courte, une ligne par commit ;
  2. regarder le contenu du commit 4c1d2e9 ;
  3. annuler ce commit proprement, sans réécrire l'historique.
eleve@cours: ~
  • git log --oneline affiche l'historique court
  • git show affiche le commit 4c1d2e9
  • git revert annule le commit
  • Pas de git reset --hard
Bloqué ? Voir une solution
git log --oneline
git show 4c1d2e9
git revert 4c1d2e9

Quiz

1Que fait git revert ?
2Quelle commande montre ce que tu as modifié mais pas encore préparé ?
3Dans git log --oneline, où est le commit le plus récent ?