GIT - 12 Annulation des modifications
Dans cette leçon, nous allons annuler des modifications Git à deux niveaux différents : d'abord en sortant un fichier de la staging area, puis en restaurant son contenu d'origine depuis le dernier commit. Je suis dans le repository test, sur la branche master, avec un working directory propre. Commençons par modifier coucou.html dans l'éditeur : ajoutons une ligne « qui sera annulée », puis sauvegardons.
Sortir un fichier de la staging area
Un git status confirme que coucou.html est modifié. Plaçons-le dans la staging area avec :
git add --all
git status
Le fichier est maintenant prêt à être commité. Mais finalement, on change d'avis : on ne veut plus que ces modifications soient incluses dans le prochain commit. Pour le sortir de la staging area, on utilise :
git reset HEAD coucou.html
Git répond que le fichier a été retiré de la zone de préparation. Important : le contenu du fichier sur disque reste intact, la ligne ajoutée est toujours là — on a juste annulé l'opération git add.
Restaurer le contenu d'origine
Maintenant, si on veut aussi se débarrasser des modifications dans le fichier lui-même et revenir exactement à l'état du dernier commit, on utilise :
git checkout -- coucou.html
git reset HEAD <fichier>: retire le fichier de la staging area (mais le disque reste modifié)git checkout -- <fichier>: restaure le contenu du fichier depuis le dernier commit (perte des modifs non commitées)
Après ces deux commandes, un git status montre un working directory propre, et l'inspection du fichier confirme que la ligne ajoutée a bel et bien disparu. Attention, ces opérations sont destructives : une fois exécutées, les modifications locales sont définitivement perdues.
En résumé
Cette leçon explique comment annuler vos modifications en Git en passant par la zone de staging. Vous apprendrez à utiliser la commande `git reset HEAD` pour retirer un fichier modifié de la zone de préparation, puis `git checkout` pour annuler complètement les modifications du fichier et le ramener à son état du dernier commit. La leçon montre concrètement les étapes avec vérifications par `git status` pour confirmer que les changements ont bien été annulés.
Points clés
- Utiliser `git reset HEAD [nom-du-fichier]` pour retirer un fichier de la zone de staging
- Utiliser `git checkout -- [nom-du-fichier]` pour annuler complètement les modifications et revenir à la version du dernier commit
- Vérifier l'état avec `git status` avant et après chaque étape d'annulation
- La zone de staging est une étape intermédiaire avant de valider définitivement un commit
- Ces commandes permettent de revenir à un état stable sans créer de nouveau commit
Questions fréquentes
Comment annuler une modification qui est déjà dans la zone de staging (après `git add`)?
Utilisez la commande `git reset HEAD [nom-du-fichier]` pour retirer le fichier de la zone de préparation, puis vérifiez avec `git status`.
Comment annuler une modification et revenir à la version du dernier commit?
Après avoir retiré le fichier de la zone de staging avec `git reset HEAD`, utilisez `git checkout -- [nom-du-fichier]` pour restaurer complètement le fichier à son état du dernier commit.
Qu'est-ce que `git status` montre pendant le processus d'annulation?
À chaque étape, `git status` vous indique l'état du fichier : modifié mais non stagé, modifié et stagé, ou bien sans modifications après annulation complète.