I have a git repository whose structure looks like:
+--repo.git
|
+----+bootstrap.py
+----+buildout.cfg
+----+.gitignore
+----+webapp
|
+---------+manage.py
Yes, git will track the changes in past content. It uses hashes of the file's content so regardless of where they are located in the directory structure, they will be the same file.
As a result, you should do the move in one commit, and then fix up any edits in a subsequent commit. That will enable Git to determine the redirection with maximum efficiency, and won't make any difference to the amount of data stored in the repository (since you'd be making those changes anyway).