Leçon 7 / 20

Choisir les fichiers à préparer

8 min Git — versionner son code Gratuit

Objectif : Préparer uniquement les fichiers liés à une modification du site.

Vous avez repéré une modification dans README.md et comparé son contenu à la version enregistrée. Vous ne voulez pas préparer automatiquement tous les changements du projet : vous souhaitez choisir précisément ceux qui feront partie de la prochaine version.

Dans cette leçon, vous préparez la modification existante de README.md sans enregistrer de commit. Le fichier contient déjà la ligne ajoutée à la fin de la leçon précédente : vous pouvez vous appuyer sur cet état, sans ajouter d’autre changement.

Vérifier ce que vous allez préparer

Commencez par contrôler l’état du dépôt et relire le changement concerné. Comme vu dans les deux leçons précédentes, git status indique quels fichiers ont changé, et git diff affiche les lignes modifiées qui ne sont pas encore préparées. Ici, ces commandes servent à vérifier que vous ciblez bien README.md.

Terminal
cd suivi-site
git status
git diff -- README.md
Résultat attendu
Le statut indique que README.md est modifié et n’est pas préparé. Le diff affiche la ligne ajoutée à la fin du fichier. Le texte précis dépend du contenu ajouté dans la leçon précédente.

L’option -- README.md limite l’affichage à ce fichier : vous évitez de mélanger sa modification avec d’éventuels changements dans d’autres fichiers. Cette vérification est utile avant toute sélection, car la préparation dépend du contenu affiché à ce moment-là.

Sélectionner les changements avec git add -p

La commande git add -p vous fait examiner les changements par portions, appelées « hunks ». Pour chaque portion, Git attend votre choix dans le terminal. Vous pouvez ainsi préparer certains changements et en laisser d’autres de côté, au lieu de placer d’un seul coup toutes les modifications d’un fichier dans la zone de préparation.

Terminal
git add -p README.md
Résultat attendu
Git affiche une portion du diff, puis une invite du type « Stage this hunk [y,n,q,a,d,s,e,?]? ». Le texte exact et les options proposées peuvent varier selon la version de Git.

Pour préparer la portion présentée, saisissez y, puis appuyez sur Entrée. Si plusieurs portions apparaissent, examinez chacune d’elles : saisissez y pour inclure celle qui correspond à votre objectif, ou n pour la laisser hors de la préparation. La commande se termine lorsque vous avez traité les portions proposées.

Contrôler la sélection

Après votre sélection, relisez l’état et comparez les deux versions du changement : celle préparée et celle qui reste non préparée. Cette vérification permet de confirmer que vous avez inclus la bonne modification et qu’aucun autre fichier n’a été sélectionné par inadvertance.

Terminal
git status
git diff --cached -- README.md
git diff -- README.md
Résultat attendu
README.md apparaît comme préparé si vous avez répondu y à sa portion. git diff --cached -- README.md affiche le contenu préparé. git diff -- README.md affiche les changements qui restent non préparés ; il ne produit rien si tout le changement de ce fichier a été préparé.

Dans l’état de ce projet, le changement existant concerne README.md : vous pouvez préparer cette portion et laisser index.html et style.css intacts. Si d’autres modifications apparaissent dans votre dépôt, refusez les portions qui ne relèvent pas de la même tâche. La zone de préparation contient alors uniquement ce que vous avez choisi, mais aucun commit n’a encore été créé.

À retenir

  • `git add -p FICHIER` vous permet de choisir les portions de changements à préparer.
  • Examinez chaque portion avant de répondre : `y` l’inclut, `n` la laisse de côté.
  • Utilisez `s` pour tenter de séparer une portion lorsque Git le permet.
  • Contrôlez la sélection avec `git status`, `git diff --cached` et `git diff`.
  • La préparation sélectionne du contenu ; elle ne crée pas de commit.

Dans la prochaine leçon, vous transformerez les changements préparés en un commit lisible.

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.