Git Repo and User interaction - kstrack-grose/Git-Project GitHub Wiki
CHERNOH Basically, there are three main stages in which any data is stored/hanged on git/Github. Git data reside on either the committed, the modified, or the staged stage - and this determines the locality of any file on the system. The Git repository only contains stored metadata, so Github basically copies this data and makes the copy available to any user with authenticate access to the original/parent repository/directory. However, the user can technically only access these data from the working directory (instead of the Git directory), this is where the individual files are decompressed and placed on a temporary disk for users to pull and modify. Note, Git employs a staging area (where information is basically packaged before commit), it does not record the history of individual files, only committed changes! This means that later users only have access to data in the working directory, the directory that is effectively a copy of the parent Git directory. Once committed, always committed, that's why the Git Repo is so important in collaborative projects!
[ps. this is based on my remote understanding, and I could be wrong]
Sources: http://web.mit.edu/cluedumps/slides/understanding-git-2008.pdf http://ftp.newartisans.com/pub/git.from.bottom.up.pdf (pages 6-14) https://developer.github.com/guides/getting-started/#repositories http://git-scm.com/book/en/Getting-Started-Git-Basics