Vamos a diferenciar 3 estados por los que pasa un fichero cuando está bajo un control de versiones git.
Cuando nos traemos por primera vez un repositorio a nuestro ordenador ( git clone ) o bien iniciamos un un nuevo repositorio ( git init ), lo que estamos haciendo es crear un directorio oculto .git donde se van a almacenar todos los metadatos y actividad de los cambios que haya en esa carpeta.
A diferencia de otros sistemas de control de versiones, En git se realizan snapshots de todo el contenido de la carpeta en la que se esté haciendo control de versiones, pero de una manera eficiente (explicaremos más a fondo cómo es el mecanismo ).
El directorio de trabajo no es más que una copia de la versión más reciente almacenada en la “base de datos de git” y expuesta en el sistema de ficheros para que podamos trabajar con ella de forma transparente.
El área de preparación es un archivo contenido en tu directorio git , en el que se almacena toda la información que va a llevar nuestra nueva versión (Qué ficheros se han añadido, modificado o borrado). El área de preparación es el preludio de un commit .
Por último veamos un esquema de los tres estados comentados: