Annuler un commit déjà poussé (git revert)
IntermédiaireContrairement à 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