150 votes

Annule une plage de commits dans git

Comment puis-je annuler une série de commits dans git? En consultant la documentation de gitrevisions , je ne vois pas comment spécifier la plage dont j'ai besoin. Par exemple:

 A -> B -> C -> D -> E -> HEAD
 

Je veux faire l'équivalent de:

 git revert B-D
 

où le résultat serait:

 A -> B -> C -> D -> E -> F -> HEAD
 

où F contient l'inverse de BD inclus.

202voto

VonC Points 414372

Quelle est la version de Git que vous utilisez?

Revenant plusieurs s'engage dans la prise en charge uniquement dans Git1.7.2+: voir "Restauration d'une vieille valider à l'aide de revenir plusieurs fois." pour plus de détails.
Le courant git revert page de man est seulement pour l' actuelle version Git (1.7.4+).


Comme l' OP Alex Spurling rapports dans les commentaires:

La mise à niveau vers 1.7.4 fonctionne très bien.
Pour répondre à ma propre question, c'est la syntaxe que je recherche:

git revert B^..D 

Notez que chaque revenue commettre est déterminé séparément.

Henrik N précise dans les commentaires:

git revert OLDER_COMMIT^..NEWER_COMMIT

9voto

Orlando Points 3184

faire git revert OLDER_COMMIT^..NEWER_COMMIT n'a pas fonctionné pour moi, j'ai utilisé git revert -n OLDER_COMMIT^..NEWER_COMMIT et tout va bien, j'utilise la version git 1.7.9.6 .

0voto

Graham Borland Points 27556

Utilisez git rebase -i pour réduire les commits pertinents en un seul. Ensuite, vous avez juste un engagement à revenir.

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