Rozpoczynając od repozytorium w stanie pierwotnym

Aby usunąć merge, zatwierdzić i zgnieść gałąź do pojedynczego zatwierdzenia w głównej linii

Użyj tych poleceń (zastępując 5 i 1 wartościami SHA odpowiednich zatwierdzeń):
git checkout 5
git reset --soft 1
git commit --amend -m '1 2 3 4 5'
git rebase HEAD master
Aby zachować zatwierdzenie scalające, ale zgnieść zmiany gałęzi w jedną:

Użyj tych poleceń (zastępując 5, 1 i C wartościami SHA odpowiednich zatwierdzeń):
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
Aby usunąć zatwierdzenie scalające i zastąpić je indywidualnymi zatwierdzeniami z gałęzi

Po prostu zrób (zastępując 5 wartością SHA odpowiedniego zatwierdzenia):
git rebase 5 master
I wreszcie, aby całkowicie usunąć gałąź

Użyj tego polecenia (zastępując C i D SHA odpowiednich zatwierdzeń):
git rebase --onto C D~ master