107 votes

Comment revenir sur les deux commits précédents ?

Imaginons le scénario suivant :

  1. Le développeur A effectue une validation : #n
  2. Dev. B s'engage #n+1
  3. Dev. A s'engage #n+2
  4. et s'engager #n+3

et découvre ensuite que dans son commit #n+2 il a introduit un défaut.

Comment le dev. A peut revenir sur ses 2 derniers commits et continuer à développer sur le commit #n+1 ?

Essayé git reset --hard HEAD~2 * mais il revient à l'engagement de Dev A. #n .

159voto

Adam Dymitruk Points 34999

Il devrait revenir à l'engagement n+1. Vous avez probablement un commit de fusion là-dedans aussi. Vous pouvez aussi faire un git reset --hard <sha1_of_where_you_want_to_be>

AVERTISSEMENT ! --hard signifie que toute cha seront définitivement supprimées.

21voto

Nick Cuevas Points 356

Je suggérerais plutôt d'utiliser quelque chose comme ceci :

git reset --soft <commit_hash>

A moins que vous ne vouliez qu'il supprime tous les changements jusqu'à ce point, dans ce cas utilisez --hard au lieu de --soft, cela vous amènera au point désiré dans l'arbre SANS supprimer tous les changements effectués dans les commits.

Pendant que je lisais, j'ai essayé avec --HARD et, pour mon malheur, cela a supprimé tous les changements que j'avais effectués jusqu'à ce moment-là. Il faut donc faire attention à ce que l'on veut supprimer ou non.

Donc, si vous n'avez pas de chance comme moi, essayez ceci ! : git revert <commit_hash>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X