Eu encontrei uma boa explicação para Como reverter a mesclagem neste link e copiei e colei a explicação abaixo e seria útil apenas no caso de o link abaixo não funcionar.
Como reverter uma fusão defeituosa
Alan (alan@clueserver.org) disse:
Eu tenho um ramo mestre. Temos uma ramificação disso em que alguns desenvolvedores estão trabalhando. Eles afirmam que está pronto. Nós o fundimos no ramo mestre. Ele quebra algo, então revertemos a mesclagem. Eles fazem alterações no código. eles chegam a um ponto em que dizem que está tudo bem e nos fundimos novamente. Quando examinados, descobrimos que as alterações de código feitas antes da reversão não estão no ramo mestre, mas as alterações de código depois estão no ramo mestre. e pediu ajuda para se recuperar dessa situação.
A história imediatamente após a "reversão da mesclagem" ficaria assim:
---o---o---o---M---x---x---W
/
---A---B
onde A e B estão do lado do desenvolvimento que não foi tão bom, M é a mesclagem que traz essas alterações prematuras para a linha principal, x são alterações não relacionadas ao que o ramo lateral fez e já fez na linha principal e W é o " reverter a mesclagem M "(W não parece M de cabeça para baixo?). IOW, "diff W ^ .. W" é semelhante a "diff -RM ^ .. M".
Essa "reversão" de uma mesclagem pode ser feita com:
$ git revert -m 1 M
Depois que os desenvolvedores do ramo lateral corrigem seus erros, o histórico pode ficar assim:
---o---o---o---M---x---x---W---x
/
---A---B-------------------C---D
onde C e D devem corrigir o que foi quebrado em A e B, e você já pode ter outras alterações na linha principal após W.
Se você mesclar a ramificação lateral atualizada (com D na ponta), nenhuma das alterações feitas em A ou B estará no resultado, porque elas foram revertidas por W. Foi isso que Alan viu.
Linus explica a situação:
A reversão de um commit regular apenas efetivamente desfaz o que o commit fez e é bastante direta. Porém, a reversão de uma consolidação de mesclagem também desfaz os dados alterados pela consolidação, mas não faz absolutamente nada com os efeitos no histórico que a mesclagem teve. Portanto, a mesclagem ainda existirá, e ainda será vista como a união dos dois ramos, e as futuras mesclagens verão essa mesclagem como o último estado compartilhado - e a reversão que reverteu a mesclagem trazida não afetará nada disso. Portanto, uma "reversão" desfaz as alterações de dados, mas é muito nãoum "desfazer" no sentido de que não desfaz os efeitos de uma confirmação no histórico do repositório. Então, se você pensa em "reverter" como "desfazer", sempre sentirá falta dessa parte dos reverts. Sim, desfaz os dados, mas não, não desfaz o histórico. Em tal situação, você desejaria primeiro reverter a reversão anterior, o que tornaria a história assim:
---o---o---o---M---x---x---W---x---Y
/
---A---B-------------------C---D
onde Y é a reversão de W. Essa "reversão da reversão" pode ser feita com:
$ git revert W
Este histórico (ignorando possíveis conflitos entre o que W e W..Y mudaram) seria equivalente a não ter W ou Y no histórico:
---o---o---o---M---x---x-------x----
/
---A---B-------------------C---D
e mesclar a ramificação lateral novamente não terá conflitos decorrentes de uma reversão e reversão anteriores da reversão.
---o---o---o---M---x---x-------x-------*
/ /
---A---B-------------------C---D
É claro que as alterações feitas em C e D ainda podem entrar em conflito com o que foi feito por qualquer um dos x, mas esse é apenas um conflito de mesclagem normal.