Archivo .gitignore

El archivo .gitignore le indica a Git qué archivos o carpetas debe ignorar, es decir, cuáles no deben ser rastreados ni agregados al repositorio.

¿Para qué sirve?

Sirve para evitar que el repositorio se llene de archivos innecesarios o peligrosos, como:

  • archivos temporales
  • configuraciones locales
  • dependencias descargadas
  • logs
  • caché
  • archivos sensibles

Sintaxis básica

Cada línea representa un patrón de archivo o carpeta a ignorar.

Ejemplo simple

node_modules/
vendor/
.env
*.log
*.tmp
.DS_Store
Thumbs.db

Explicación

node_modules/
Ignora toda la carpeta node_modules.
vendor/
Ignora dependencias instaladas con Composer.
.env
Ignora variables de entorno, donde suelen ir credenciales.
*.log
Ignora cualquier archivo con extensión .log.
*.tmp
Ignora archivos temporales.
.DS_Store
Ignora archivos de macOS.
Thumbs.db
Ignora archivos generados por Windows.

Reglas importantes de .gitignore

1. Solo ignora archivos no rastreados

Si un archivo ya fue agregado antes con git add, ponerlo en .gitignore no lo elimina automáticamente del repositorio.

Para dejar de versionarlo:

git rm --cached nombre_archivo

Ejemplo:

git rm --cached .env

2. Puede ignorar carpetas completas

cache/
temp/
uploads/

3. Puede ignorar por extensión

*.log
*.bak
*.sql.gz

4. Puede excluir excepciones con !

*.env
!.env.example

Esto significa:

  • ignorar todos los .env
  • excepto .env.example

Ejemplo de .gitignore para un proyecto con XAMPP y PHP

# Archivos del sistema
.DS_Store
Thumbs.db

# Archivos temporales
*.log
*.tmp
*.bak

# Configuración sensible
.env
config_local.php

# Dependencias
vendor/
node_modules/

# Archivos del editor
.vscode/
.idea/

# Caché y sesiones
cache/
tmp/
sessions/

# Archivos subidos dinámicamente
uploads/

# Respaldos de base de datos locales
*.sql
*.zip