El Archivo .gitignore y Patrones de Exclusión
Aprende a proteger tu repositorio excluyendo archivos innecesarios, carpetas de dependencias pesadas, temporales del sistema y credenciales privadas mediante el archivo .gitignore.
¿Qué es .gitignore y por qué es crítico?
El archivo .gitignore es un archivo de texto plano ubicado en la raíz de tu proyecto que le indica a Git qué archivos o carpetas debe ignorar deliberadamente para que nunca aparezcan en git status ni puedan subirse por error a un repositorio remoto (como GitHub).
.env, llaves privadas SSH, tokens de API ni credenciales de base de datos a Git. Una vez que un secreto entra a un commit, queda grabado en el historial incluso si borras el archivo en el commit siguiente.
¿Qué tipo de archivos se deben ignorar siempre?
- Dependencias instalables:
node_modules/en Node.js/JS,vendor/en PHP (Composer), o entornos virtuales.venv/en Python. Ocupan cientos de megabytes y se regeneran con un solo comando. - Archivos de configuración local y secretos:
.env,config.local.php,id_rsa, certificados.pem. En su lugar se comparte un archivo plantilla como.env.example. - Archivos del sistema operativo y editores:
.DS_Storeen macOS,Thumbs.dben Windows, y configuraciones de editor como.idea/o.vscode/. - Archivos de compilación y temporales:
dist/,build/,storage/logs/*.log, bases de datos temporales SQLite de pruebas.
Sintaxis y Patrones Comodín en .gitignore
| Patrón | Significado y Comportamiento | Ejemplo |
|---|---|---|
nombre_carpeta/ |
Ignora toda la carpeta y cualquier subdirectorio dentro de ella. | node_modules/ o storage/workspaces/ |
*.extension |
Ignora todos los archivos con esa extensión en cualquier nivel. | *.log o *.sqlite |
/archivo |
Ignora el archivo solo si está exactamente en la raíz, no en subcarpetas. | /.env |
!archivo |
Excepción: no ignorar este archivo específico aunque haya una regla general. | !storage/logs/.gitkeep |
⚡ Plantilla Recomendada de .gitignore para Proyectos Web
Un archivo .gitignore completo y profesional para aplicaciones modernas Full-Stack (HTML, CSS, JS, PHP, bases de datos):
# ==========================================
# Archivo: .gitignore
# ==========================================
# 1. Variables de entorno y credenciales (¡Crítico!)
.env
.env.local
.env.*.local
*.key
*.pem
# 2. Gestores de dependencias
/vendor/
/node_modules/
package-lock.json.backup
# 3. Archivos de compilación y temporales
/dist/
/build/
*.log
*.tmp
*.bak
# 4. Bases de datos locales de desarrollo
*.sqlite
*.sqlite3
*.db
/storage/workspaces/
# 5. Basura del Sistema Operativo
.DS_Store
Thumbs.db
desktop.ini
# 6. Carpetas de Editores (IDE)
.idea/
.vscode/
*.sublime-project
*.sublime-workspace
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.🚀 ¿Quieres dominar Manual Completo de Git & GitHub Profesional y crear proyectos reales?
Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.
🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.