If you’re in the git situation where you want to rebase your working branch onto an updated master and you also want to squash your branch’s commits, it is to your advantage to squash before you rebase. Intuitively, if you squash a bunch of commits into a single one, you’ll have fewer & better conflicts (or at least no worse) to resolve when the commit is applied to a new base.

If you merely invoke git rebase -i master, git will rebase and then begin ...