Créer un historique par intention
Objectif : Enregistrer séparément une modification de page et une modification de navigation avec des messages conformes aux conventions.
Vous avez plusieurs changements en cours, mais ils ne poursuivent pas tous le même objectif. Si vous les enregistrez ensemble, il sera plus difficile de comprendre l’historique ou de retrouver une modification précise.
Dans cette leçon, vous séparez deux intentions dans `index.html` : préciser la présentation du projet, puis clarifier le libellé d’un lien de navigation. Vous créez un commit pour chacune, sans inclure la note provisoire de `README.md` ni le fichier `.gitignore`.
Examiner les changements déjà présents
Le dépôt `suivi-site` est à jour avec `origin/main`. Il reste toutefois une note provisoire non commitée dans `README.md`, ainsi que le nouveau `.gitignore` non suivi. Ne les supprimez pas : le but est de ne préparer que les changements voulus dans `index.html`.
cd suivi-site
git status --short M README.md
?? .gitignoreLe préfixe ` M` signale ici un fichier suivi modifié, tandis que `??` signale un fichier non suivi. Ces états ont été étudiés dans « Lire l’état du dépôt ». À cette étape, aucun des deux fichiers ne doit entrer dans les commits de cette leçon.
Enregistrer l’amélioration de la page
Modifiez dans `index.html` la phrase de présentation située dans la section d’introduction. Remplacez « Un suivi des changements enregistrés et de la première publication du site. » par « Un historique clair des changements et de la première publication du site. » Cette modification concerne le contenu de la page, pas la navigation.
git diff -- index.html
git add -p index.htmlLa première commande montre la phrase modifiée. Dans l’invite interactive de git add -p, acceptez uniquement le changement de l’introduction avec y, puis quittez avec q.L’ajout interactif vous permet de choisir la portion à préparer. Vérifiez ensuite la zone de préparation avant de créer le commit : vous devez y retrouver uniquement la modification de présentation, sans la note de `README.md` ni `.gitignore`.
git diff --cached -- index.html
git status --short
git commit -m "Clarifier la présentation du projet"Le commit est créé avec le message « Clarifier la présentation du projet ». Le changement de présentation est enregistré ; la note de README.md et .gitignore restent hors du commit.Enregistrer séparément la modification de navigation
Après le premier commit, modifiez le texte du lien de navigation « Publication » en « Dépôt distant ». Conservez son attribut `href` égal à `#publication` : la cible de la section ne change pas. Vous avez maintenant une deuxième intention, distincte de la présentation du projet.
git diff -- index.html
git add -p index.html
git diff --cached -- index.html
git commit -m "Clarifier le lien vers le dépôt distant"Le deuxième commit contient uniquement le changement du libellé du lien. Les deux messages commencent par un verbe à l’infinitif employé comme impératif et décrivent chacun une intention.Vous avez enregistré la page avant de modifier le lien : le deuxième changement n’existait donc pas au moment du premier commit. Contrôlez enfin l’état du dépôt. `README.md` et `.gitignore` doivent toujours être présents comme changements locaux, mais ils ne font partie d’aucun des deux commits.
git status --short
git log -2 --oneline M README.md
?? .gitignore
<identifiant-court> Clarifier le lien vers le dépôt distant
<identifiant-court> Clarifier la présentation du projetÀ retenir
- Séparez les changements qui répondent à des intentions différentes.
- Vérifiez les changements préparés avant chaque commit avec `git diff --cached`.
- Rédigez un message à l’impératif en français, précis et lié au contenu du commit.
- Laissez hors de la préparation les fichiers locaux qui ne font pas partie de l’intention.
Dans la prochaine leçon, vous corrigerez une erreur avant publication en vérifiant chaque restauration et en préservant les modifications utiles.