Workspace, staging area, local repository.
Workspace: the place where you actually write your project, such as visible folders and files
Stage/index: The area between the workspace and the local repository. The staging area is responsible for the "communication" between the workspace and the repository, which brings more flexibility to version control. From the workspace to the staging area only the contents of the workspace are "tracked and monitored", and no version control is established for them.
local repository: The contents of the staging area are committed to the local repository, which has a ./git hidden folder that manages each commit of the project, so that your project is actually "managed" and not just "monitored".
The various commands for Git are talked about in detail in Kissing GitHub.
Untracked status (untracked): the file is still only in the workspace, not yet in the staging area for tracking and monitoring.
unmodified: a blank document that has not been edited
Modified: edited a blank document
Staged status (staged): the file is staged when it reaches the staging area
- 4.3 Git's workflow between zones
These three areas form a circular workflow, where the contents of the workspace are added to the stage/index, the contents of the staging area are committed to the local repository, and the workspace can be checked out to a branch of the release.
5 Git Takes on GitHub