A quick read on how git stores it's data. The part I found interesting was that git stores whole copies of the files you create when they're committed and then calculates the diffs on the fly. It also talks about the git repack command which I didn't know existed and I will have to experiment with soon on a non-critical repo.

http://slidetocode.com/2013/08/25/how-git-works/