El archivo .gitignore en Git

Evita que Git registre archivos innecesarios en nuestros repositorios con el archivo .gitignore.

gitignore

No siempre queremos que todos los archivos añadidos al repositorio se incluyan en el historial de Git. Archivos temporales, logs, configuraciones locales o dependencias descargadas automáticamente son buenos ejemplos de lo que deberíamos mantener fuera del control de versiones.

Para eso sirve .gitignore: un archivo de texto que le indica a Git qué rutas debe ignorar al preparar los cambios.

Estructura básica de un .gitignore

El archivo puede ubicarse en la raíz (root) del proyecto (o en cualquier subdirectorio si se necesita un alcance más acotado). Contiene una lista de patrones, uno por línea. Por ejemplo:

Terminal
# Ignorar la carpeta node_modules (habitual en proyectos Node.js)
node_modules/
# Ignorar todos los archivos .log
*.log
# Ignorar archivos de configuración del sistema
.DS_Store
Thumbs.db
# Ignorar archivos de entorno local
.env

Los comentarios se indican con # y los patrones pueden usar comodines:

  • * equivale a cualquier número de caracteres.
  • ** representa directorios anidados.
  • ? equivale a un solo carácter.

Algunos ejemplos adicionales

Terminal
# Ignorar todas las carpetas dist en cualquier parte del proyecto
**/dist/
# Ignorar todos los archivos que empiecen por 'temp' y acaben en '.txt'
temp*.txt

Comportamiento cuando ya hay archivos en seguimiento

El archivo .gitignore solo afecta a los archivos que todavía no están bajo control de versiones. Si ya se han añadido y confirmado, ignorarlos no tendrá efecto hasta que los eliminemos del repositorio.

Por ejemplo:

Terminal
git rm --cached archivo.log

Este comando elimina el archivo del historial, pero lo deja intacto en el sistema de archivos local.

Uso recomendado en proyectos colaborativos

Es buena práctica incluir el archivo .gitignore desde el inicio del proyecto y mantenerlo actualizado según evolucionan las herramientas y entornos. También conviene utilizar plantillas según el tipo de proyecto; GitHub, por ejemplo, mantiene una colección de .gitignore para diferentes lenguajes y entornos.

Para proyectos en Node.js, por ejemplo:

Terminal
node_modules/
npm-debug.log
.env
dist/
coverage/

En un proyecto de Python:

Terminal
__pycache__/
*.py[cod]
.env
.venv/

Si usamos Visual Studio Code, añadir esta línea evita subir la configuración local del editor:

Terminal
.vscode/

Conclusión

Gestionar bien el archivo .gitignore nos permite mantener nuestros repositorios limpios, evitando subir archivos innecesarios que no aportan valor al proyecto o que pueden generar conflictos. Es una herramienta sencilla pero importante para trabajar con repositorios ordenados y evitar errores innecesarios, especialmente cuando compartimos código con otras personas.