Tema 4 · Seguridad

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).

🚨 Alerta Máxima de Seguridad (Fuga de Secretos): Nunca subas archivos .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_Store en macOS, Thumbs.db en 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):

.gitignore
Solo lectura
# ==========================================
# 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.