git (hub) supprime la validation d'une fusion

Ma question dans git remove remove d'une fusion mais je ne peux pas suivre les instructions suggérées ici, car l'histoire de mon repository est un peu différente.

Je travaille sur un repository open-source sur github. Après quelques mois, j'ai voulu mettre à jour mon référentiel local et j'ai fait une fusion inutile – commettre par erreur. L'histoire ressemble à ci-dessous:

* commit 3d542ddb64e6474a10dfface24defc69b713a295 | Author: TD | | fixed typo in dependency_injection/compilation chapter | * commit 34db3b8c08e5c5d3be4021076716ed90187fe5fb |\ Merge: b8b73fb 7cc08f4 | | Author: TD | | | | Merge remote-tracking branch 'upstream/master' | | | * commit 7cc08f476b7ac5610b1eb5b5db5182d18e35a9e9 | | Author: RW | | | | [#1654] Tweaking comments ... 

Il devrait y avoir juste un commit avec mon petit changement, mais il y en a deux. Je veux juste supprimer le commit de fusion 34db3b8c0 …. Je sais que je devrais essayer le rebase interactif, mais je ne sais pas comment le configurer. Quand j'essaye

 git rebase -i HEAD~2 

Je reçois une énorme list de commits passés:

 pick bbfbddb Add the new "ssortingct_requirements" pick 31bb8a9 [reference] Tweaking note about ssortingct_requirements pick fb4d621 [Cookbook][Extension] Fixed typo in functions name pick d8d1d86 Fixing index typo # lots and lots of commits in the history here pick c734436 Fixed indentation. pick ca8d884 Update cookbook/logging/channels_handlers.rst pick 7cc08f4 [#1654] Tweaking comments in channel handlers doc to point to reference pick 3d542dd fixed typo in dependency_injection/compilation chapter: should be contAiner instead of continer # Rebase b8b73fb..3d542dd onto b8b73fb # # Commands: ... 

Mais quand j'essaie:

 git rebase -i HEAD~1 

(Je veux avoir une list plus courte) Je reçois seulement un commit:

 pick 3d542dd fixed typo in dependency_injection/compilation chapter: should be contAiner instead of continer 

Pour autant que je comprenne, je devrais écraser le commit de fusion 34db3b8c08 … en utilisant le rebase interactif, non?

Merci pour toute aide.

Solutions Collecting From Web of "git (hub) supprime la validation d'une fusion"

Essayez git rebase upstream/master . Ainsi, votre validation sera appliquée au maître distant. Le commit de fusion sera abandonné comme inutile.

Ce que vous voulez faire est de prendre tous les changements depuis la fusion et de les rebaser sur le commit avant la fusion:

 git rebase --onto 34db3b8^ 34db3b8 master 

où "34db3b8" est le commit de fusion que vous voulez éliminer, et "master" est la twig dont vous voulez l'éliminer. Cela va réécrire la twig, en ignorant le commit de fusion et en rejouant tout après.

Le moyen le plus facile est de réinitialiser votre twig HEAD à la tête amont et de forcer la poussée vers l'origine

 git reset --hard HEAD upstream/master git push -f origin master