Défaire une modification dans la copie de travail

Voyons donc ce qui se passe quand on a effectué une modification sur un fichier qu’on avait déjà commité. Son état apparaît modifié dans Git, ce qu’on représente dans le schéma par le fichier en vert. On peut revenir à l'état précédent en demandant à Git d'appliquer la dernière version connue de l'index pour ce fichier. Pour ça on va utiliser la commande git checkout -- mon-fichier. Voyez ce que produit cette commande : la version du fichier a été appliquée depuis l’index vers la copie de travail.

(Exemple 01-undo-wd-changes)

Voyons le même exemple dans le terminal.

On a ici un projet avec 4 fichiers modifiés fichier-1, fichier-2 et dans le sous-repertoire, fichier-3 et fichier-4. Si on fait un git status on voit que Git nous affiche un message plutôt clair : « utilisez "git checkout -- <fichier>..." pour annuler les modifications dans la copie de travail ». Retenez que quand vous êtes perdu·e, git status est votre meilleur ami.

Si on suit ces instructions et qu'on effectue un git checkout -- fichier-2 sous-repertoire/fichier-3 et qu’on refait un git status on constatera que nos fichiers 2 et 3 ont été écrasés et qu’ils n’apparaissent plus modifiés. Parfois Git nous indique même l'écrasement avec un message du type : « 2 chemins mis à jour depuis l'index ».