A partire dal repository nello stato originale
Per rimuovere il commit di unione e schiacciare il ramo in un unico commit nella linea principale
Usa questi comandi (sostituendo 5 e 1 con gli SHA dei commit corrispondenti):
git checkout 5
git reset --soft 1
git commit --amend -m '1 2 3 4 5'
git rebase HEAD master
Per mantenere un commit di unione ma schiacciare il commit di branch in uno:
Usa questi comandi (sostituendo 5, 1 e C con gli SHA dei commit corrispondenti):
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
Per rimuovere il commit di unione e sostituirlo con commit individuali dal ramo
Basta fare (sostituendo 5 con lo SHA del commit corrispondente):
git rebase 5 master
E infine, per rimuovere completamente il ramo
Usa questo comando (sostituendo C e D con gli SHA dei commit corrispondenti):
git rebase --onto C D~ master