web-dev-qa-db-fra.com

Échec de la restauration de Git

J'ai fait plusieurs commits (commit1/2/3), j'ai changé mon répertoire de travail sans ranger. Ensuite, j'ai voulu revenir en arrière il y a plusieurs commits. J'ai donc git revert commit1 commit2 commit3, mais on m'a dit de valider mes modifications (commit4), donc je l'ai fait, puis j'ai recommencé git revert commit1 commit2 commit3 commit4, mais j'avais un message

erreur: une sélection de cerise ou un retour est déjà en cours. indice: essayez "git cherry-pick (--continue | --quit | --abort)"

Lorsque je lance git branch -va, HEAD pointe vers la validation 3

Je ne comprends pas très bien ce qui se passe. Que dois-je faire maintenant pour faire revenir les choses?

14
epsilones

Il est préférable d'initier un retour avec un index propre et une arborescence de travail.
Sinon, effectuer un deuxième retour (en plus d'un nouveau commit) alors qu'un retour précédent était en cours conduit à ce message d'erreur.

Puisque vous êtes toujours à commit 3, vous pourriez:

  • git cherry-pick --quit (qui, à partir de ce fil , indique à revert de laisser HEAD seul et de s'écarter.),
  • examiner votre index et votre arbre de travail (statut git),
  • faire n'importe quel ajustement pour obtenir un statut propre (comme un nouveau commit),
  • puis refaites votre git revert.

(vous pouvez voir d'autres options dans " Revenir au commit précédent - Github pour MAC (un retour est déjà en cours) ")

N'oubliez pas git reset si vous voulez simplement oublier ces trois commits (bien que cela vous obligerait à forcer un Push: git Push --force, afin de publier votre historique pour cette branche. Si d'autres collaborateurs sont déjà issus de cette même branche, votre approche, en utilisant git revert, c'est mieux)

19
VonC