Défaire une modification dans l'index et la copie de travail

Voyons le même exemple, mais commençons cette fois par ajouter le fichier modifié à l'index. On s’aperçoit finalement que ces modifications n’ont aucun intérêt, et on veut donc les retirer de l’index et de la copie de travail. On va donc faire un git checkout HEAD -- mon-fichier. On voit alors que la version de mon fichier connue du dépôt local est utilisée pour venir écraser mon index et ma copie de travail.

(Exemple 02-undo-index-and-wd-changes)

Comme précédemment voyons le même exemple dans le terminal.

On repart du même projet sauf que cette fois-ci on a le fichier-3 qui a été ajouté à l’index comme nous l’indique git status. On va modifier le fichier-1 et l’ajouter à l’index également. Notre objectif sera de défaire complètement les modifications de ce fichier-1. On refait un git status pour vérifier.

Comme vous le voyez à l’écran, une fois de plus git status nous indique la marche à suivre pour désindexer un fichier avec un message qui nous dit « utilisez "git reset HEAD <fichier>..." pour désindexer ». Nous verrons cette approche dans quelques instants. Ce qu'il faut retenir dans l'immédiat, c'est que ce reset n'a pour effet que de défaire l'index, pas la copie de travail. On devrait dans tous les cas faire un checkout après coup.

Faisons plutôt d'une pierre deux coups en faisant directement un git checkout HEAD -- fichier-1. Comme précédemment on fait un git status pour vérifier, ce qui nous confirme le succès de notre opération puisque le fichier n’apparaît plus en modification ni dans l’index, ni dans la copie de travail. Enfin on peut ouvrir le fichier-1 et on constate qu’il ne contient plus notre modification.