Directorio de trabajo
- En inglés: working tree (literalmente árbol de trabajo)
- Sinónimos: working directory (directorio de trabajo), working copy (copia de trabajo)
El directorio de trabajo contiene los archivos y directorios del proyecto que puedes editar, eliminar y organizar en tu ordenador. Ahí haces los cambios antes de decidir si los incluirás en un commit del repositorio.
Ejemplo
Imagina que estás trabajando en un proyecto de aplicación web. Tu proyecto está bajo control de versiones con Git, y ves algo así en tu explorador de archivos:
project-root/
├── .git/
├── src/
│ ├── components/
│ │ ├── header.js
│ │ └── footer.js
│ ├── utils/
│ │ └── helpers.js
│ └── main.js
├── index.html
├── styles.css
├── app.js
└── config.jsonPregunta: Entonces, ¿por qué en inglés se llama working tree (árbol de trabajo)?
Respuesta: En inglés, working tree significa literalmente "árbol de trabajo". La palabra "árbol" viene de que Git representa los archivos y directorios como una estructura jerárquica: directorios que se ramifican en otros directorios y archivos. En español usaremos casi siempre directorio de trabajo, porque suena más natural y evita mezclar este concepto con otros árboles internos de Git.
El directorio .git contiene todos los metadatos y la base de datos de objetos del repositorio. Está oculto en la vista normal de archivos del proyecto porque no está pensado para que interactúes con él directamente. Aun así, cuando trabajas en la terminal, a menudo puedes ver este directorio listado.
El resto de archivos y directorios (como src/, index.html, styles.css, etc.) forman tu directorio de trabajo. Puedes editar estos archivos, añadir otros nuevos o eliminar los existentes cuando lo necesites. Son los archivos cuyos cambios sigue Git.
Cómo funciona
Git lleva la cuenta de las diferencias entre los archivos de tu directorio de trabajo y el último commit de tu rama actual. Esto te permite editar, añadir y eliminar archivos libremente en tu directorio de trabajo sin afectar de inmediato al historial de commits del repositorio. Cuando los cambios te cuadren, puedes añadirlos al área de staging (con un comando como git add) y después crear un commit nuevo, conservando una instantánea en el historial del proyecto.
Cuando cambias a una rama o a un commit concreto, los archivos de tu directorio de trabajo se actualizan para coincidir con el estado del repositorio en ese punto. Después puedes hacer cambios en esos archivos, como añadir funcionalidades nuevas, corregir bugs o mejorar la base de código.
El directorio de trabajo es importante porque:
- Te ofrece una versión visible y editable de tu proyecto en su estado actual o en cualquier rama que tengas seleccionada.
- Te permite trabajar en los archivos de tu proyecto y probar tus cambios antes de decidir si quieres crear un commit nuevo.
- Te permite ver de inmediato en tu sistema de archivos los efectos de cambiar de rama o de hacer pull desde un repositorio remoto.
Comandos relacionados
Comprueba el estado del directorio de trabajo:
git statusComprueba las diferencias entre el directorio de trabajo y el último commit:
git diffDescarta cambios en un archivo dentro del directorio de trabajo:
git restore path/to/file.txtAñade todos los cambios del directorio actual (.) al área de staging:
git add ..gitignoregit checkoutgit configgit taggit worktree