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 :
restore: restaure l’état d’un fichier depuis un commit ou la zone de staging.--staged: indique que tu veux le retirer du staging, sans toucher au contenu du fichier.
👉 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 :
index.htmlredevient un fichier modifié non ajouté.- Tu peux à nouveau le corriger avant de refaire
git add.
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 :
- Elles retirent tous les fichiers du staging area.
- Tes modifications restent présentes dans ton répertoire de travail.
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 :
- Retire les fichiers de la zone de staging.
- Restaure leur contenu tel qu’il était au dernier commit. Résultat : ton dépôt redevient identique à l’état précédent.
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 :
- Changes to be committed → fichiers ajoutés (
git add). - Changes not staged for commit → fichiers modifiés mais non ajoutés.
- Untracked files → fichiers non suivis par Git.
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 statusavant de faire uncommit, surtout après ungit add .. Cela t’évitera bien des surprises !