Sometimes it is unavoidable, but in general minimize it. Don't refactor a class and rename it at the same time. Hopefully moves just result in imports and paths changing, something that is not likely to confuse a blame (and rarely do I care about the blame lines on #includes/imports)
Comments
How do you not change the code as it's being moved, when you need to update #include directives, imports, and other file paths?
It's easy if not every commit needs to compile. :)
Sometimes it is unavoidable, but in general minimize it. Don't refactor a class and rename it at the same time. Hopefully moves just result in imports and paths changing, something that is not likely to confuse a blame (and rarely do I care about the blame lines on #includes/imports)
New branch, make two commits. Squash merge the branch as a single commit.