Começando com o repo no estado original
Para remover o commit de mesclagem e comprimir o branch em um único commit na linha principal
Use estes comandos (substituindo 5 e 1 pelos SHAs dos commits correspondentes):
git checkout 5
git reset --soft 1
git commit --amend -m '1 2 3 4 5'
git rebase HEAD master
Para manter um commit de mesclagem, mas compactar os commits de branch em um:
Use estes comandos (substituindo 5, 1 e C pelos SHAs dos commits correspondentes):
git checkout -b tempbranch 5
git reset --soft 1
git commit --amend -m '1 2 3 4 5'
git checkout C
git merge --no-ff tempbranch
git rebase HEAD master
Para remover o commit de mesclagem e substituí-lo por commits individuais do branch
Basta fazer (substituindo 5 pelo SHA do commit correspondente):
git rebase 5 master
E, finalmente, para remover o ramo inteiramente
Use este comando (substituindo C e D pelos SHAs dos commits correspondentes):
git rebase --onto C D~ master