Though Thomas Owens's answer is technically correct, I am not sure if it really addresses your question.
Yes, Git (and most other SCC systems) maintains information about the person who committed each line of code for the entire history of the project, but not who wrote each line of the code originally, or if code was cut-and-pasted from one file to another. This is actually not what Git is designed for.
The root cause here is the fact that the only thing Git sees from the source code is the textual content of those files at certain points in time, but not the editor commands (like cut, copy and paste, or just typing characters) which created that content. An SCCS which could track the "real" author of some source code blocks over their full "live time" automatically would have to do this, which means it had to be very deeply integrated into your text editor or IDE. I am not aware of any SCCS or IDE which does this (but maybe something like this exists somewhere, I honestly don't know).
Hence, if you think you really need to keep the history of original authors, your approach of leaving a comment where some piece of code was taken from is the most effective thing you can do. For most practical purposes, this is totally sufficient. Knowing the author of a piece of code sometimes may be of help, but in reality, this information is only seldom required. And for those rare occasions, it is usually sufficient to work oneself through the commit history and "reverse-engineer" from the commits who might have been the "real" author of a piece of code. In larger, older code bases, this often turns out to be be a person who isn't reachable nowadays, in which case the authors name would probably be useless anyway.