Je ne suis pas sûr de savoir comment git revert
fonctionne. Par exemple, je veux revenir à un commit situé six commits derrière le head, en annulant tous les changements dans les commits intermédiaires entre les deux.
Dites que son SHA Le hachage est 56e05fced214c44a37759efa2dfc25a65d8ae98d
. Alors pourquoi je ne peux pas juste faire quelque chose comme :
git revert 56e05fced214c44a37759efa2dfc25a65d8ae98d
1 votes
Même si cette question est en fait plus ancienne que celle dont elle est maintenant marquée comme un doublon, celle-ci a une meilleure réponse. meta.stackexchange.com/questions/147643/
18 votes
Cette question et la réponse qui y figure peuvent prêter à confusion pour les utilisateurs de git. Pour aider à comprendre la terminologie, vous ne devez pas revenir à un engagement. Vous pouvez soit réinitialisé à un commit (ce qui revient à remonter le temps avec la machine à remonter le temps) ou revenir à un commit (ce qui revient à retirer un commit comme s'il n'avait jamais existé - cependant, cela préserve les informations de revert dans l'historique, vous permettant de revenir sur un revert si vous le souhaitez) Notez également que vous ne devriez pas utiliser le drapeau m et taper un message de commit si vous obtenez des conflits dans le processus. Le message automatique fourni par git est plus informatif lorsqu'on regarde dans l'historique.
1 votes
C'est un très bon retour d'information. Merci @alexrogins
1 votes
@alexrogins que signifie retirer un commit comme s'il n'avait jamais existé ? Je ne suis pas sûr non plus de savoir à quoi se réfère le terme 'revert a revert'. J'apprécie votre commentaire, c'est une bonne information, je cherche juste à obtenir plus de détails sur votre point de vue.
2 votes
Joe : si vous ajoutez une ligne de code et que vous livrez cette ligne, si vous la réversez, vous annulez cette ligne de code (où qu'elle ait été écrite dans l'histoire, ce n'est pas forcément la dernière livraison). Cela fait alors un commit revert. Si vous réversez ce commit réversible, vous annulez essentiellement l'annulation (c'est-à-dire que vous refaites la ligne originale à nouveau).