Estados de archivos en Git


En git los archivos tienen diferentes estados, en este post, estudiaremos esos estados con ejemplos

oscar Escrito por oscar 10 April 2025 215 0

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.

Estados de archivos en Git
Estados de archivos en Git

🔄 Ciclo de vida de un archivo en Git

Un archivo puede estar en alguno de los siguientes estados:

  1. 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) 
  2. 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 con git 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)]

Comentario

Debe aceptar antes de enviar