Déstockage d'un fichier stocké
Les deux sections suivantes montrent comment travailler avec les modifications de votre zone de transit et de votre répertoire de travail. Ce qui est bien, c'est que la commande que vous utilisez pour déterminer l'état de ces deux zones vous rappelle également comment annuler les modifications qui y ont été apportées. Par exemple, disons que vous avez modifié deux fichiers et que vous voulez les livrer en tant que deux changements séparés, mais que vous tapez accidentellement git add * et les mettez tous les deux en scène. Comment pouvez-vous annuler l'un des deux ? La commande git status vous le rappelle :
$ git add *
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
renamed: README.md -> README
modified: CONTRIBUTING.md
Juste en dessous du texte "Changes to be committed", il est dit d'utiliser git reset HEAD ... pour déstocker. Donc, utilisons ce conseil pour déstocker le fichier CONTRIBUTING.md :
$ git reset HEAD CONTRIBUTING.md
Unstaged changes after reset:
M CONTRIBUTING.md
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
renamed: README.md -> README
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: CONTRIBUTING.md
La commande est un peu étrange, mais elle fonctionne. Le fichier CONTRIBUTING.md est modifié mais une fois de plus non indexé.