Projects with license headers and programming language boilerplate make these problems so much worse because Git thinks any time a small file was deleted and another small file was added, it was a rename. Fairly often just manually redo commits because Git is worse than nothing.