Comparer les changements non préparés
Objectif : Repérer précisément les lignes modifiées depuis la dernière version enregistrée, à l’aide de git diff.
Vous savez qu’un fichier a changé, mais pas encore quelles lignes sont concernées. Avant d’enregistrer une version, vous devez pouvoir examiner ces différences et vérifier qu’elles correspondent bien à votre travail. Dans cette leçon, vous comparez la modification non préparée de `README.md` avec le contenu enregistré dans votre premier commit. Vous ne changez pas les fichiers : vous apprenez à lire le résultat de la comparaison.
Comparer les lignes avec git diff
À la leçon précédente, `git status` vous a permis de voir que `README.md` est modifié et n’a pas été préparé. La commande `git diff` va plus loin : elle compare le contenu actuel de ce fichier avec sa dernière version enregistrée et affiche les différences ligne par ligne. Depuis le dossier `suivi-site`, lancez la commande suivante. Elle ne change aucun fichier et ne prépare aucune modification : elle affiche simplement les écarts détectés dans le dépôt.
git diffLa sortie dépend du texte exact ajouté à `README.md` lors de la leçon précédente. Vous y trouverez une section de comparaison : son en-tête indique les fichiers comparés, puis des lignes de contexte entourent les changements. Les lignes précédées de `-` appartiennent à l’ancienne version et ont été retirées ou remplacées ; celles précédées de `+` sont présentes dans le fichier actuel. Si la modification précédente consistait à ajouter une seule ligne, la partie significative de la sortie contient une ligne marquée `+` pour cet ajout. Les éventuelles lignes sans signe `+` ou `-` servent de contexte : elles aident à situer le changement sans être elles-mêmes modifiées. Ne confondez pas les préfixes de comparaison avec des caractères ajoutés au fichier.
Lire une section de différence
Une sortie peut commencer par des lignes d’en-tête qui désignent les deux versions comparées, puis présenter un repère appelé en-tête de section. Celui-ci commence par `@@` et contient des indications de position dans chacune des versions. Pour cette leçon, retenez surtout que ce repère annonce une portion du fichier où Git a trouvé des différences ; vous n’avez pas besoin d’en interpréter les nombres pour reconnaître les lignes modifiées. Une ligne ajoutée apparaît avec un `+` en début de ligne, et une ligne supprimée avec un `-`. Lorsqu’une ligne est corrigée, Git la représente généralement comme une suppression suivie d’un ajout. La comparaison montre le contenu, pas seulement le fait qu’un fichier a changé : vous pouvez donc vérifier si la modification de `README.md` est bien celle que vous vouliez faire.
Limiter la comparaison à un fichier
Quand plusieurs fichiers sont modifiés, une comparaison complète peut être longue. Vous pouvez demander à Git de n’afficher que les changements d’un chemin précis. Dans l’état actuel du projet, cette commande cible la modification connue de `README.md` et facilite sa vérification.
git diff -- README.mdLe séparateur `--` indique que ce qui suit est un chemin de fichier. La commande reste une consultation : elle ne modifie ni `README.md` ni la version enregistrée. Si vous lancez `git diff` alors qu’aucune modification non préparée n’est présente, aucune différence n’est affichée. Dans ce projet, ne touchez pas à `index.html` ni à `style.css` pour cet exercice : la seule modification héritée des leçons précédentes est celle de `README.md`. Le résultat précis dépend de la ligne ajoutée précédemment ; vérifiez donc cette ligne dans votre terminal plutôt que de remplacer son contenu par un exemple différent.
À retenir
- `git diff` affiche les différences non préparées entre le fichier actuel et sa dernière version enregistrée.
- Le préfixe `+` indique une ligne ajoutée ; le préfixe `-`, une ligne supprimée ou remplacée.
- Les lignes de contexte aident à localiser un changement sans être modifiées.
- Ajoutez `-- README.md` pour limiter l’affichage à ce fichier.
- Relisez les différences avant de poursuivre : la commande examine le contenu, mais ne le corrige pas.
Dans la prochaine leçon, vous choisirez précisément quels changements placer dans la zone de préparation.