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