Git follows following three tree architecture.
Working – is the working directory where the file changes are made. For the first time you either push the changes to the repository and following changes you may pull the repository copy to your working directory
Staging – before the work is been committed to repository the changes are prepared for commit and sits in a staging index.
Repository – once the changes are staged these can be committed to repository.