How to squash recent (n) commits

TL;DR

#change this number -👇🏻- to be the number of commits you want to sqaush starting from top most recent
git reset --soft HEAD~2 && git commit --edit -m"$(git log --format=%B --reverse HEAD..HEAD@{1})"

In Depth breakdown

git reset

explain this

git reset --soft

head

explain this

HEAD~2

commit edit

explain this

git commit --edit -m

inline command

explain this

"$(...stuff...)"

git log

explain this

git log --format=%B --reverse

head stuff

explain this

HEAD..HEAD@{1}