Comment annuler `git add` avant un commit ?

Comment annuler git add avant un commit ?

Tu as lancé un git add . un peu trop vite ?
Pas de panique 😅 ! Git permet de retirer facilement des fichiers de la zone de staging (l’espace où les fichiers sont préparés avant le commit).
Dans cet article, on va voir plusieurs façons d’annuler un git add avant un commit, que ce soit pour un fichier spécifique ou pour tous les fichiers ajoutés par erreur.


🧩 Comprendre ce que fait git add

Avant tout, rappelons ce que fait la commande :

git add fichier.txt

Elle place fichier.txt dans la zone de staging, c’est-à-dire la liste des fichiers prêts à être inclus dans le prochain commit. Tant que tu n’as pas fait git commit, tu peux retirer ou modifier librement ces fichiers sans rien perdre.


1. Annuler un git add sur un fichier spécifique

Si tu veux simplement retirer un seul fichier de la zone de staging, utilise :

git restore --staged fichier.txt

🧠 Explication :

👉 Le fichier reste modifié dans ton dossier, mais il n’est plus en attente de commit.

Exemple :

git add index.html
git restore --staged index.html

Résultat :


2. Annuler tous les fichiers ajoutés par erreur

Si tu as fait un git add . et que tu veux tout annuler d’un coup :

git restore --staged .

ou l’équivalent avec git reset :

git reset

Les deux commandes font la même chose dans ce cas :


3. Annuler un git add pour revenir à un état 100 % propre

Si tu veux non seulement retirer les fichiers du staging, mais aussi annuler les modifications locales, tu peux combiner :

git restore --staged .
git restore .

Cette double commande :


4. Méthode alternative : git reset HEAD

Avant que git restore n’existe, la méthode classique était :

git reset HEAD fichier.txt

ou pour tous les fichiers :

git reset HEAD

C’est l’équivalent de git restore --staged, mais avec la syntaxe “ancienne école”. Elle reste très utilisée, surtout sur les dépôts où Git est en version < 2.23.


5. Vérifier ce qui est encore en staging

Pour savoir où tu en es, exécute simplement :

git status

Tu verras trois sections :

C’est la meilleure façon de vérifier que ton git add a bien été annulé.


🧠 Astuce bonus : annuler un git add dans un script

Si tu fais souvent la même erreur (comme un git add . un peu trop enthousiaste), tu peux ajouter un alias pratique dans ton fichier .gitconfig :

[alias]
    unadd = restore --staged .

Ainsi, tu n’auras plus qu’à taper :

git unadd

pour retirer tous les fichiers ajoutés par erreur du staging area. 💡 Simple, clair, efficace !


✅ En résumé

Situation Commande Effet
Annuler un git add sur un fichier git restore --staged fichier.txt Retire un fichier du staging sans toucher au contenu
Annuler un git add global git restore --staged . ou git reset Retire tous les fichiers du staging
Revenir à l’état du dernier commit git restore --staged . && git restore . Supprime les modifications et restaure le dépôt
Ancienne version de Git git reset HEAD fichier.txt Ancienne syntaxe équivalente
Vérifier l’état du dépôt git status Affiche les fichiers ajoutés, modifiés ou ignorés

🚀 Conclusion

Annuler un git add avant un commit est simple, rapide et sans danger. Que tu utilises git restore --staged ou git reset HEAD, le but est le même : retirer les fichiers du staging area sans perdre ton travail. C’est une commande essentielle pour garder un historique Git propre et précis.

💡 Astuce : pense à toujours vérifier ton git status avant de faire un commit, surtout après un git add .. Cela t’évitera bien des surprises !