I really wish version control systems could be smarter about tracking the origin of a chunk/line of code across moves between files, as otherwise all the history of a section of code is lost (making "who added this piece of code?" or "what was the purpose of this line?" much harder to track down the road, when using `git blame`).

One way to mitigate this problem, when moving the bulk of one file to a new file, is to use `git mv`, and then do a commit to have the rename/move stored as its own commit, then make the changes (moving a few of the lines back to the original file/location, deleting what's not needed in the destination, etc). This way, the history of that large chunk of code is mostly maintained (just tested).