merge feature branches when reintegrating main, squash merge onto the main branch when you’re finished - best of both worlds imo
I never need to rebase, or unfuck a botched rebase or go reflog diving - and the commit history is linear where it matters.