Начиная с репо в исходном состоянии
Чтобы удалить фиксацию слияния и сжать ветку в одну фиксацию в основной ветке
Используйте эти команды (заменив 5 и 1 на SHA соответствующих коммитов):
git checkout 5
git reset --soft 1
git commit --amend -m '1 2 3 4 5'
git rebase HEAD master
Чтобы сохранить фиксацию слияния, но сжать ветвь, выполните следующие действия:
Используйте эти команды (заменив 5, 1 и C на SHA соответствующих коммитов):
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
Чтобы удалить коммит слияния и заменить его отдельными коммитами из ветки
Просто сделайте (заменив 5 на SHA соответствующего коммита):
git rebase 5 master
И наконец, чтобы полностью удалить ветку
Используйте эту команду (заменив C и D на SHA соответствующих коммитов):
git rebase --onto C D~ master