In the object store. Object store is then packed into packs.
https://git-scm.com/book/en/v2/Git-Internals-Git-Objects
I’d link a good github intro article too but I don’t have it at hand.
/edit: IIRC not the one I thought of but
The post you have commented on is a link to a blog post that answers the question.
Oops, I indeed hadn’t noticed.
deleted by creator
This is why I really dislike rhetorical questions as titles haha
There are multiple copies of your files; the obvious one is your ‘working copy’, which is just the files on your machine that you work on. The second copy is in your local object store (in the .git directory). Git stores the committed data and it’s metadata there. Then there’s the remote copy on your git server if you push your commits to one.
Git uses the difference between the data in your ‘working copy’ and your object store to work out what you’ve changed and so needs commiting.