Ignorar archivos con Gitignore

GitBeginner
Practicar Ahora

Introducción

Durante el desarrollo de software, la carpeta de su proyecto puede llenarse de archivos que no deberían compartirse. Algunos ejemplos son:

  • Archivos temporales: generados por su editor o por el sistema operativo, como .DS_Store.
  • Artefactos de compilación: código compilado, como .exe o .class.
  • Registros: archivos que registran la ejecución del programa, como debug.log.
  • Secretos: claves de API o contraseñas (¡NUNCA los confirme en el repositorio!).

Git incluye una función llamada .gitignore. Es una lista sencilla de reglas que indican qué elementos no se deben rastrear. Si un archivo coincide con una regla de esta lista, Git lo dejará sin rastrear de forma predeterminada.

Este archivo establece una política para el árbol de trabajo. Indica a Git qué archivos sin rastrear debe tratar como ruido normal de fondo, en lugar de considerarlos posibles archivos de código fuente que se pueden agregar.

No se trata solo de mantener el orden. Un buen .gitignore ayuda a evitar ruido, repositorios demasiado grandes y confirmaciones accidentales de secretos o archivos innecesarios específicos de una máquina.

En este laboratorio, usted hará lo siguiente:

  1. Crear un archivo de «basura» que queremos ignorar.
  2. Configurar un archivo .gitignore.
  3. Verificar que Git ignore correctamente el archivo de basura.

Crear un archivo de registro

Primero, cree un archivo que represente datos de «basura». Imagine que su aplicación genera un archivo de registro cada vez que se ejecuta. Queremos conservar este archivo en el equipo local para depurarlo, pero no queremos compartirlo con el equipo ni guardarlo en el historial.

Vaya al directorio del proyecto:

cd ~/project

Cree un archivo llamado debug.log con contenido de prueba:

echo "System started at $(date)" > debug.log

Verifique que exista:

ls

En este punto, si ejecuta git status, Git verá este archivo como «Untracked» y seguirá sugiriendo que lo agregue.

Este es el comportamiento normal de los archivos que Git detecta, pero que todavía no se han configurado para ignorarse. En la práctica, Git le está preguntando si el archivo debe formar parte del repositorio.

Crear el archivo .gitignore

Para indicar a Git que no muestre información sobre determinados archivos, necesitamos un archivo de configuración especial llamado .gitignore.

Cree el archivo en la raíz del proyecto:

touch .gitignore

Verifique que se haya creado. Recuerde que está oculto porque comienza con un punto:

ls -a

El archivo .gitignore es simplemente un archivo de texto plano. Por lo general, sí conviene confirmar el propio archivo .gitignore, para que todas las personas del equipo compartan las mismas reglas de exclusión.

Esta es una distinción importante: los archivos ignorados suelen ser artefactos locales, mientras que .gitignore suele ser parte de la configuración del proyecto y pertenece al control de versiones.

Configurar las reglas de exclusión

Ahora, agregue una regla para ignorar todos los archivos de registro.

Puede usar el comodín * para indicar «cualquier elemento cuyo nombre termine en .log».

Agregue el patrón *.log al archivo .gitignore:

echo "*.log" > .gitignore

Verifique el contenido del archivo:

cat .gitignore

Salida:

*.log

Esta única línea indica a Git lo siguiente: «Ignore cualquier archivo de este directorio y de cualquier subdirectorio cuyo nombre termine en .log».

Las reglas de exclusión se basan en patrones; no son instrucciones limitadas a un único archivo. Por eso, un archivo .gitignore breve puede administrar muchas categorías de archivos generados o no deseados.

Verificar el estado de exclusión

Compruebe si la regla funciona.

Ejecute git status:

git status

Analice la salida:

On branch master

No commits yet

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

¡Espere! ¿Dónde está debug.log?

¡Ya no aparece en la lista! Esto significa que Git lo está ignorando correctamente. Git solo le informa sobre el propio .gitignore —que finalmente deberíamos confirmar—, pero debug.log es invisible para Git.

Esta es la diferencia práctica entre Untracked e Ignored. Los archivos sin rastrear todavía se sugieren para agregarlos, mientras que los archivos ignorados se excluyen deliberadamente de esa consideración.

Si quiere asegurarse por completo, puede usar el comando check-ignore para preguntar «¿Por qué se ignora este archivo?»:

git check-ignore -v debug.log

Salida:

.gitignore:1:*.log debug.log

Esto significa lo siguiente: «El archivo debug.log se ignora debido a la regla *.log de la línea 1 de .gitignore».

Resumen

En este laboratorio, aprendió a mantener limpio su repositorio.

Aspectos clave:

  1. .gitignore: un archivo de texto que contiene los patrones que Git debe ignorar.
  2. Comodines: use * para coincidir con varios archivos, como *.log.
  3. Sin rastrear frente a ignorado: para Git, un archivo ignorado se trata como si no existiera, aunque siga existiendo en el disco.

Este archivo sencillo es muy potente. Evita que confirme accidentalmente archivos temporales, binarios o claves confidenciales, y ayuda a mantener su proyecto profesional y seguro.