I'm not sure what is a best practice for a large project, but for this project, I try to separate logic change commits from code reformatting change commits, that way, if I ever need to see what happened to a file, it's easy to ignore reformatting commits