</>
Plan du cours — 32/74

Annuler un commit déjà poussé (git revert)

Intermédiaire

Contrairement à reset, revert ne réécrit pas l'historique : il crée un nouveau commit qui annule les changements d'un commit précédent. C'est la méthode sûre pour annuler quelque chose de déjà partagé (main, PR mergée...).

# Annuler un commit précis en créant un commit inverse
git revert abc1234

# Annuler sans ouvrir l'éditeur (message auto-généré)
git revert --no-edit abc1234

# Annuler plusieurs commits (du plus ancien au plus récent)
git revert abc1234..def5678

# Annuler un merge commit (il faut préciser quel parent garder, en général -m 1)
git revert -m 1 <hash-du-merge-commit>

Cas pratique : un bug part en production dans le dernier commit sur main. La correction n'est pas prête, il faut annuler vite :

git log --oneline -5          # repérer le hash du commit fautif
git revert abc1234            # crée un nouveau commit qui annule abc1234
git push origin main          # déploie l'annulation, sans réécrire l'historique