Accès Rapide
Introduction
Il y a de nombreuses façons d'annuler des changements avec Git. De même que pour les commits, annuler des changements avec Git est à la fois un aspect bas-niveau (gestion des fichiers et morceaux de fichiers) et un aspect de plus haut niveau (comment les changements sont effectivement annulés). Nous allons nous intéresser à ce dernier point.
Il y a principalement deux façons d'annuler des changements avec Git : l'une estgit reset
et l'autre estgit revert
. Nous allons maintenant voir chacune de ces façons.
Git Reset
git reset annule des changements en déplaçant la référence en arrière
dans le temps sur un commit plus ancien. En ce sens, on peut considérer
cela comme une façon de "réécrire l'histoire"; git reset fait remonter
une branche en arrière comme si le(s) commit(s) n'avait jamais eu lieu.
git reset HEAD^
Nice! Git a simplement déplacé la référence de la branche master en
la faisant revenir sur C1; désormais notre dépôt est dans le même état
que si C2 n'avait jamais eu lieu.
Git Revert
Bien que le reset marche parfaitement pour les branches locales sur notre propre machine, cette façon de "réécrire l'histoire" ne marche pas avec les banches distantes (remote) que d'autres personnes utilisent.
Pour pouvoir annuler des changements et partager ces annulations avec d'autres, nous devons utiliser git revert. Regardons comment cela fonctionne.
git revert HEAD
Un nouveau commit est apparu en bas sous le commit que nous voulions annuler.
C'est parce que ce nouveau commit C2' introduit des modifications --
celles qui correspondent justement à l'annulation de celles du commit C2.
Avec revert, vous pouvez diffuser (push) vos modifications et
les partager avec tout le monde.
Pour accomplir ce niveau, annulez les derniers commits à la fois sur local et sur pushed. Vous devez annuler en tout 2 commits (un pour chaque branche).