Je ne suis pas si expérimenté avec Git et maintenant j'ai un gros problème à tomber sur mes genoux.Annuler une fusion git
Voilà comment ma branche actuelle ressemble:
feature /---F1-----F2----\
/ \
master -----M0-----M1-----M2-----M3-----M4
\ /
bugfix \--B1-----B2-----------/
La situation:
Quelqu'un a fait une très mauvaise chose et a poussé une fusion vraiment mauvais (M3). J'ai seulement remarqué la fusion incorrecte quand nos modèles (pas le code source) ne chargeraient pas après que j'ai fusionné B1 et B2 dans M4. Heureusement, je n'ai pas encore poussé M4.
Le problème:
Comment régler les choses à nouveau? Je veux M0, M1, M2, F1, F2, B1 et B2. Mais je ne veux pas M3 et M4 (puisque M4 est évidemment cassé). Si je ai d'abandonner les modifications, puis F1 et F2 peuvent être sacrifiées :)
J'ai regardé git revert
mais je ne suis pas sûr que je comprends très bien comment cela fonctionne. Donc ... j'espère vraiment de l'aide pour résoudre ce problème.
Merci d'avance.
Oui, en quelque sorte, mais "feature", "master" et "bugfix" ne sont pas réellement des branches, je suppose que c'est ce qui prête à confusion. Autrement dit, 3 ppl engagés à leurs propres changements de la branche maîtresse. Un gars a fait une mauvaise fusion et a poussé. J'ai tiré la mauvaise fusion. Maintenant, je veux un moyen d'exclure la mauvaise fusion tout en gardant tous les changements individuels ... – aberrant80
Donc 'feature' et' bugfix' ne sont pas des branches? Sûrement l'auteur de 'feature' a une branche dans son propre repo. Ce que vous devez faire est de réinitialiser votre maître à M2, et demander à l'auteur de 'feature' de faire la même chose (mais assurez-vous qu'il ne perd pas la branche' feature') et refaire la fusion, correctement cette fois. Voir ma mise à jour si vous voulez le faire vous-même. – Gauthier
Avez-vous vraiment un repo sans une branche «master»? – Gauthier