git reset
git
Syntaxe
git reset [--soft|--mixed|--hard] <commit> | git reset <path>Déplace le pointeur de branche sur un autre commit : --soft garde tout indexé, --mixed (par défaut) vide aussi l'index mais laisse vos modifications dans les fichiers, et --hard les détruit également, sans retour.
Options courantes
| Option | Signification |
|---|---|
| --soft | move the branch only; index and files keep everything, so the change stays staged |
| --mixed | default: also clear the staging area, leaving edits in your files |
| --hard | also overwrite your files; uncommitted work is destroyed |
| <path> | no commit given: unstage that path |
| --keep | move but refuse if it would overwrite a local change |
| --merge | like --hard but keeps changes that do not collide |
Exemples
git reset --soft HEAD~1undoes the last commit and leaves everything staged
git reset HEAD~1undoes the last commit; the changes sit in your files, unstaged
git reset src/app.tsunstages one file without changing it
git reset --hard origin/mainthrows away local commits AND uncommitted edits
Ce qui embrouille, c’est qu’annuler a plusieurs formes : déplacer là où pointe une branche n’est pas ajouter un commit qui l’inverse.
Comment lire
- Les crochets [ ] marquent une partie facultative.
- Les points de suspension … signifient qu’on peut en mettre plusieurs.
- Les options sont sensibles à la casse : sur certaines commandes, -r et -R ne font pas la même chose.
Questions fréquentes
Q. Que fait git reset ?
Déplace le pointeur de branche sur un autre commit : --soft garde tout indexé, --mixed (par défaut) vide aussi l'index mais laisse vos modifications dans les fichiers, et --hard les détruit également, sans retour.
Q. Comment l’écrire ?
git reset [--soft|--mixed|--hard] <commit> | git reset <path> — les crochets marquent ce qui est facultatif.
Q. Combien d’options valent la peine ?
Il y en a 6 ici ; la liste complète est dans man git. Cette commande relève de git.
Commandes liées
page man: man git-reset