Leçon 19 / 20

Corriger une erreur avant publication

20 min Git — versionner son code Gratuit

Objectif : Détecter une modification indésirable, la retirer sans supprimer les changements utiles, puis vérifier l’état obtenu.

Corriger une erreur avant publication

Une modification accidentelle peut se glisser dans un fichier au milieu de changements utiles. Si vous restaurez le mauvais fichier, vous risquez de perdre du travail ; si vous publiez sans contrôle, l’erreur peut rejoindre le dépôt distant. Vous allez isoler une ligne indésirable dans `index.html`, la retirer, puis vérifier que les autres éléments en attente sont toujours présents.

Examiner les changements avant d’agir

Dans le dépôt `suivi-site`, l’historique intentionnel de `index.html` est déjà commité. La note provisoire de `README.md` reste modifiée mais non préparée, et `.gitignore` reste non suivi. Vous simulez maintenant une erreur : l’ajout accidentel d’une phrase dans la section de publication. Commencez par demander à Git un état synthétique, puis comparez le contenu de `index.html` à sa dernière version committée.

Terminal
cd suivi-site
git status --short
git diff -- index.html
Résultat attendu
 M README.md
 M index.html
?? .gitignore
diff --git a/index.html b/index.html
--- a/index.html
+++ b/index.html
@@ -... +... @@
+    <p>Ne pas publier cette phrase de test.</p>

La sortie montre trois éléments distincts : la note de `README.md`, la modification de `index.html` et le fichier `.gitignore` non suivi. Dans la comparaison, la ligne précédée de `+` est présente dans le fichier de travail, mais absente de la version committée. Ne lancez pas une restauration globale : ciblez uniquement le fichier qui contient l’erreur.

Restaurer uniquement le fichier concerné

La modification de `index.html` est ici entièrement indésirable : vous pouvez restaurer ce fichier seul. La commande suivante ne vise ni `README.md` ni `.gitignore`. Après l’opération, contrôlez de nouveau l’état, puis vérifiez que la comparaison de `index.html` ne présente plus de différence.

Terminal
git restore -- index.html
git status --short
git diff -- index.html
Résultat attendu
 M README.md
?? .gitignore

La commande `git status --short` ne signale plus `index.html` : ce fichier a retrouvé le contenu de son dernier commit. La modification de `README.md` et le fichier `.gitignore` sont toujours là, ce qui confirme que vous avez préservé les éléments utiles ou encore nécessaires. La commande `git diff -- index.html` ne produit aucune sortie, car aucune différence non préparée ne subsiste dans ce fichier.

À retenir

  • Lisez l’état du dépôt et le diff pour identifier précisément le fichier et la ligne indésirables.
  • Utilisez `git restore -- chemin` uniquement si vous souhaitez remplacer tout le contenu non commité de ce fichier par sa dernière version committée.
  • Relancez `git status` et `git diff` après la restauration pour vérifier le résultat.
  • Contrôlez que les autres modifications utiles et les fichiers non suivis sont toujours présents.

À la prochaine leçon, vous publierez l’historique et vérifierez sur la forge le contenu effectivement transmis.

Envie d'aller plus loin ?

Les cours Enovatic sont gratuits et le resteront. Si vous cherchez un accompagnement encadré, nos formations professionnelles sont animées par les mêmes formateurs.