Estados de archivos en Git
En git los archivos tienen diferentes estados, en este post, estudiaremos esos estados con ejemplos
En Git, los archivos pueden estar en diferentes estados, dependiendo de lo que estés haciendo con ellos. Comprender estos estados es fundamental para trabajar con Git de forma eficiente. Aquí tienes una guía clara de los estados de archivos y cómo interactúan los comandos git status
, git add
y git commit
.

🔄 Ciclo de vida de un archivo en Git
Un archivo puede estar en alguno de los siguientes estados:
-
Untracked (No rastreado)
-
El archivo existe en tu directorio, pero Git no lo está siguiendo.
-
Aparece cuando creas un archivo nuevo y aún no lo agregas al control de versiones.
-
📌 Se muestra con
git status
como:Untracked files: (use "git add <file>..." to include in what will be committed)
-
-
Tracked (Rastreado)
-
El archivo ya es parte del repositorio y puede estar en alguno de estos sub-estados:
a. Unmodified (Sin cambios)
-
El archivo no ha sido modificado desde el último commit.
b. Modified (Modificado)
-
Has cambiado el archivo desde el último commit, pero no has ejecutado
git add
aún. -
📌 Se muestra con
git status
como:Changes not staged for commit: (use "git add <file>..." to update what will be committed)
c. Staged (Preparado para commit)
-
Has ejecutado
git add
, y el archivo está listo para ser confirmado congit commit
. -
📌 Se muestra con
git status
como:Changes to be committed: (use "git restore --staged <file>..." to unstage)
-
⚙️ Comandos clave
1. git status
-
Muestra el estado actual de tu working directory y del staging area.
-
Te indica qué archivos han cambiado, cuáles están listos para ser confirmados y cuáles no están siendo rastreados.
2. git add <archivo>
-
Mueve archivos modificados al staging area.
-
Puedes usar:
-
git add archivo.txt → solo ese archivo.
-
git add . → todos los cambios actuales.
-
3. git commit -m "mensaje"
-
Toma los archivos staged y crea un nuevo commit en el repositorio.
-
Ejemplo:
git commit -m "Agrega función de login"
🧠 Ejemplo práctico
Creamos un archivo nuevo de tipo txt plano donde vamos a agregar cualquier texto, esto lo hacemos de la siguiente forma:
echo "Hola" > saludo.txt
ahora procedemos a validar el estado del archivo de la siguiente forma:
git status
Resultado: # -> Untracked files: saludo.txt
Procedemos a agrear los cambios a staging area
git add saludo.txt
Volvemos a validar el estado del archivo
git status
Resultado: # -> Changes to be committed: saludo.txt
Procedemos hacer el commit
git commit -m "Agrega archivo saludo.txt"
Revisamos por ultima ves el estado del archivo
git status
Resultado: # -> nothing to commit, working tree clean
🧭 Resumen visual
[Working Directory]
↓
git add
[Staging Area]
↓
git commit
[Repository (Historial de commits)]