Ran into a problem while cloning git repo over http. The git clone http://xxx was always returning stale files.

Apparently you must run

$ git update-server-info

every time you commit into the repo so that http users can get the latest files.

For more info

[1]: http://progit.org/book/ch4-1.html#the_https_protocol
[2]: http://progit.org/book/ch4-5.html