Git Commit Historie kürzen

Aufgabenstellung: In einem Git Repository sollen nur die neuesten n Commits erhalten bleiben. Die älteren Commits sollen zusammengefasst werden.
Annahme
SHA1 Commit ID an dem die Historie abgeschnitten werden soll ist abcdef12
Lösung
- Neuen Branch an zukünftigem Wurzelcommit erstellen:
git checkout --orphan new_root abcdef12
- Alte Commits suqashen:
git commit -m "Truncate history"
- Neuere Commits auf neuem Wurzelcommit rebasen:
git rebase --onto new_root abcdef12 master
Credits
Photo by Luke Chesser on Unsplash
Quelle: https://passingcuriosity.com/2017/truncating-git-history/