Desfazendo uma mesclagem de git

Eu não sou tão experiente com o Git e agora tenho um grande problema em cair no meu colo.

Aqui está como minha ramificação atual se parece:

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

A situação:

Alguém fez uma coisa muito ruim e fez uma mesclagem muito ruim (M3). Eu só notei a má combinação quando nossos modelos (não o código-fonte) não foram carregados depois que mesclei B1 e B2 no M4. Felizmente, ainda não empurrei o M4.

O problema:

Como ajusto as coisas novamente? Eu quero M0, M1, M2, F1, F2, B1 e B2. Mas eu não quero M3 e M4 (já que M4 está obviamente quebrado). Se euter para abandonar as mudanças, F1 e F2 podem ser sacrificados :)

Eu olheigit revert mas não estou confiante de que compreendo perfeitamente como isso funciona. Então ... estou realmente esperando por ajuda sobre como resolver isso.

Desde já, obrigado.

questionAnswers(2)

yourAnswerToTheQuestion