squash commit history git

C++
# THIS TURNS YOUR WHOLE COMMIT HISTORY INTO ONE SINGLE COMMIT!
# BE CAREFUL!

git rebase --root -i

# In your editor, for each commit except the top, change `pick` to `squash`git reset --soft HEAD~3 &&
git commit

Source

Also in C++: