For large PR lots of commits are imho wrong. Nobody in the future is interested in seeing all the individual commits or steps to achieve the final PR. I believe if you are going to refactor (non breaking change) or fix a test or two, those should be separate and their own individual PRs.
I also believe merging in to catch up to head is also not ideal because it addsa. lot of entries to history which are effectively noise. I believe the best solution is to fetch and cherry-pick ones work on the end, so the history is as brief as possible.