The mental model

Commits as patches; rebase replays them onto another commit.

When I use it

  • Tidying a feature branch before merging
  • Never on shared branches, as it changes the commit hash