Cómo comprobar si un archivo está no rastreado en Git

GitGitBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo identificar archivos no rastreados en tu repositorio de Git. Explorarás dos métodos principales: utilizar el comando git status para ver el estado general del repositorio, incluyendo los archivos no rastreados, y emplear el comando git ls-files --others para obtener una lista más específica solo de los archivos no rastreados. Al final de este laboratorio, entenderás cómo Git distingue entre archivos rastreados y no rastreados y cómo utilizar estos comandos para gestionar eficazmente los archivos de tu proyecto.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/status("Check Status") subgraph Lab Skills git/add -.-> lab-560033{{"Cómo comprobar si un archivo está no rastreado en Git"}} git/status -.-> lab-560033{{"Cómo comprobar si un archivo está no rastreado en Git"}} end

Ejecutar git status para listar archivos no rastreados

En este paso, utilizaremos el comando git status para ver cómo Git rastrea archivos e identifica aquellos de los que aún no tiene conocimiento.

Primero, asegúrate de estar en el directorio my-time-machine. Si no estás, utiliza el comando cd:

cd ~/project/my-time-machine

Ahora, creemos un nuevo archivo en este directorio. Lo llamaremos notes.txt:

echo "Ideas for future projects" > notes.txt

Este comando crea un archivo llamado notes.txt y coloca el texto "Ideas for future projects" dentro de él.

Ahora, preguntemos a Git sobre el estado de nuestro repositorio:

git status

Deberías ver una salida similar a esta:

On branch master
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   message.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        notes.txt

Observa la sección "Untracked files:" (Archivos no rastreados). Git detecta que existe un nuevo archivo, notes.txt, en el directorio, pero aún no forma parte de la historia del repositorio. Git no rastrea automáticamente todos los archivos que creas. Esto te da control sobre qué archivos se incluyen en tu control de versiones.

¿Por qué es esto importante? Imagina que tienes archivos temporales, salidas de compilación o notas personales en el directorio de tu proyecto. No querrías que estos archivos ensuciaran la historia de tu proyecto. El estado "no rastreado" de Git te permite mantener estos archivos separados de los archivos que estás gestionando activamente con el control de versiones.

En el siguiente paso, exploraremos otra forma de listar estos archivos no rastreados.

Usar git ls-files --others

En el paso anterior, vimos que git status nos muestra los archivos no rastreados. Git también proporciona un comando más directo específicamente para listar archivos en el índice y en el árbol de trabajo. Podemos usar el comando git ls-files con la opción --others para listar solo los archivos no rastreados.

Asegúrate de que todavía estés en el directorio ~/project/my-time-machine:

cd ~/project/my-time-machine

Ahora, ejecuta el siguiente comando:

git ls-files --others

Deberías ver la siguiente salida:

notes.txt

Este comando lista específicamente los archivos que están presentes en tu directorio de trabajo pero que no son rastreados por Git. Este es un comando útil cuando quieres una lista limpia solo de los archivos que Git está ignorando actualmente o de los que aún no tiene conocimiento.

Comparando git status y git ls-files --others:

  • git status te da una visión general completa del estado de tu repositorio, incluyendo archivos rastreados con cambios, cambios preparados (staged) y archivos no rastreados.
  • git ls-files --others es más específico y solo lista los archivos no rastreados.

Ambos comandos son útiles en diferentes situaciones. git status es excelente para una visión general, mientras que git ls-files --others es útil cuando específicamente quieres identificar archivos no rastreados, quizás para decidir si agregarlos al repositorio o ignorarlos.

En el siguiente paso, exploraremos más a fondo la diferencia entre archivos rastreados y no rastreados agregando otro archivo y observando cómo reacciona Git.

Probar archivos rastreados vs no rastreados

En este paso, consolidaremos nuestra comprensión de los archivos rastreados y no rastreados agregando notes.txt al seguimiento de Git y observando el cambio de estado.

Primero, asegúrate de estar en el directorio ~/project/my-time-machine:

cd ~/project/my-time-machine

Ahora, indiquemos a Git que comience a rastrear el archivo notes.txt utilizando el comando git add:

git add notes.txt

Este comando agrega notes.txt al área de preparación (staging area), preparándolo para ser incluido en el próximo commit.

Ahora, comprobemos el estado de nuestro repositorio nuevamente:

git status

Deberías ver una salida similar a esta:

On branch master
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   message.txt
        new file:   notes.txt

Observa que notes.txt ya no está lista bajo "Untracked files:" (Archivos no rastreados). En cambio, aparece bajo "Changes to be committed:" (Cambios para confirmar), marcado como un "new file" (nuevo archivo). Esto significa que Git ahora está rastreando notes.txt y está listo para ser incluido en tu próximo punto de guardado (commit).

Esto demuestra la diferencia clave:

  • Archivos no rastreados: Archivos que se encuentran en tu directorio de trabajo pero que no se han agregado al área de preparación con git add. Git sabe que existen, pero no está gestionando sus versiones.
  • Archivos rastreados: Archivos que Git está gestionando activamente. Una vez que un archivo se agrega y se confirma, Git rastrea sus cambios a lo largo del tiempo.

Al utilizar git add, le dices explícitamente a Git qué archivos quieres incluir en tu proyecto controlado por versiones. Este control es esencial para gestionar tu proyecto de manera efectiva y mantener tu historial limpio.

En el próximo laboratorio (lab), continuaremos construyendo sobre estos conceptos fundamentales para realizar más commits y explorar el poder del historial de Git.

Resumen

En este laboratorio (lab), aprendimos cómo identificar archivos no rastreados en un repositorio de Git. Primero utilizamos el comando git status, que proporciona una visión general completa del estado del repositorio, incluyendo una sección dedicada a los archivos no rastreados. Esto demostró cómo Git distingue entre los archivos que está rastreando activamente y los nuevos archivos de los que no tiene conocimiento.

Luego exploramos el comando git ls-files --others como un método alternativo diseñado específicamente para listar solo los archivos no rastreados en el directorio de trabajo. Este comando ofrece una forma más específica de ver qué archivos actualmente no están bajo el control de versiones de Git. Comprender cómo identificar archivos no rastreados es crucial para gestionar qué archivos se incluyen en el historial de tu proyecto y mantener tu repositorio limpio.