Deshacer una fusión git

No tengo tanta experiencia con Git y ahora tengo un gran problema al caer en mi regazo.

Así es como se ve mi rama actual:

feature       /---F1-----F2----\
             /                  \
master -----M0-----M1-----M2-----M3-----M4
             \                        /
bugfix        \--B1-----B2-----------/

La situación:

Alguien hizo algo muy malo y empujó una fusión realmente mala (M3). Solo noté la mala combinación cuando nuestros modelos (no el código fuente) no se cargaron después de fusionar B1 y B2 en M4. Afortunadamente, todavía no he presionado M4.

El problema:

¿Cómo vuelvo a arreglar las cosas? Quiero M0, M1, M2, F1, F2, B1 y B2. Pero no quiero M3 y M4 (ya que M4 obviamente está roto). Si yotener para abandonar los cambios, entonces F1 y F2 pueden ser sacrificados :)

Mirégit revert pero no estoy seguro de entender completamente cómo funciona. Entonces ... realmente espero ayuda sobre cómo resolver esto.

Gracias por adelantado.

Respuestas a la pregunta(2)

Su respuesta a la pregunta