How do I squash my last N commits together into one commit?
Use git rebase -i <after-this-commit> and replace "pick" on the second and subsequent commits with "squash" or "fixup", as described in the manual:
"fixup" to discard the commit message, and squash it right away.
"squash" to combine the commit message with the previous one, and be able to edit it before squashing.
In this example, <after-this-commit> is either the SHA1 hash or the relative location from the HEAD of the current branch from which commits are analyzed for the rebase command. For example, if the user wishes to view 5 commits from the current HEAD in the past, the command is git rebase -i HEAD~5.