git fetch && git rebase origin/master, which is equivalent to git pull --rebase origin master, requires your worktree to be clean, so you must either commit or stash if you have any local changes.
I think that's a very good way to have a long list of things stashed that you don't remember what they are.
Commiting your changes is much better as you can add an explanation for your futur self.