(1) git blame <file> (2) git blame <uninterestinghash>^ <file>
which tells blame to go back to before the hash and do the blame.
I run that loop repeatedly, picking the most recent hash each time (by date/time), until I get back to the change that interests me.
Effectively, I am doing a manual implementation of displaying a "timeline" of commits that apply that code.
But whatever works for you :-)
(1) git blame <file> (2) git blame <uninterestinghash>^ <file>
which tells blame to go back to before the hash and do the blame.
I run that loop repeatedly, picking the most recent hash each time (by date/time), until I get back to the change that interests me.