Skip to content

Archivo .gitignore

Este archivo es crucial para el control de versiones con Git. Le dice a Git qué archivos y directorios no debe rastrear ni incluir en el repositorio. Esto mantiene tu historial de Git limpio y ligero, evitando la inclusión de archivos generados, caché o información sensible.

  • Descripción: .gitignore es un archivo de texto plano que lista patrones de archivos y carpetas que Git debe ignorar. Estos patrones evitan que archivos temporales, dependencias instaladas o resultados de compilación se añadan accidentalmente al historial del proyecto.
  • Propósito:
    • Mantener el Repositorio Limpio: Excluye archivos que no son código fuente esencial (ej., node_modules, dist), reduciendo el tamaño del repositorio y acelerando las operaciones de Git.
    • Evitar Conflictos Innecesarios: Previene conflictos de merge para archivos generados automáticamente que varían entre diferentes entornos o máquinas de desarrollo.
    • Proteger Información Sensible: Evita que archivos con credenciales (.env si no está cubierto por .dockerignore) o configuraciones locales se suban accidentalmente al repositorio.
  • Contenido Clave:
    • # Logs: Sección para ignorar archivos de log.
      • logs/, *.log: Directorios y archivos de log generales.
      • npm-debug.log*, yarn-debug.log*, pnpm-debug.log*, lerna-debug.log*: Archivos de depuración específicos de diferentes gestores de paquetes.
    • node_modules: Directorio donde se instalan las dependencias de Node.js. Es fundamental ignorarlo, ya que estas dependencias se manejan a través de package.json y se reinstalan en cada ambiente.
    • dist/, dist-ssr/: Directorios donde se guarda el código compilado y listo para producción, tanto para el cliente (dist) como para el renderizado del lado del servidor (dist-ssr, si aplica). Estos son resultados de un proceso de build.
    • *.local: Ignora archivos con la extensión .local, a menudo usados para configuraciones locales que sobrescriben variables de entorno o configuraciones.
    • # Editor directories and files: Sección para ignorar archivos específicos de editores de código y sistemas operativos.
      • .vscode/*: Ignora todos los archivos dentro de la carpeta .vscode/ (configuraciones de VS Code).
      • !.vscode/extensions.json: Excepción: La ! (exclamación) indica que, aunque .vscode/* se ignora, el archivo extensions.json sí debe ser incluido. Este archivo es útil para que todos los desarrolladores del equipo usen las mismas extensiones recomendadas en VS Code.
      • .idea/: Directorios de configuración de IntelliJ IDEA.
      • .DS_Store: Archivos ocultos generados por macOS.
      • *.suo, *.ntvs*, *.njsproj, *.sln, *.sw?: Archivos de proyecto y temporales específicos de entornos de desarrollo de Microsoft (ej., Visual Studio) o archivos de swap de editores como Vim.
  • Rol en el Proyecto: .gitignore es una guía esencial para el control de versiones. Asegura que el repositorio de Git contenga solo el código fuente y los archivos de configuración necesarios, facilitando la colaboración, la consistencia del entorno y el despliegue.
bash
# .gitignore

# Archivos y directorios de logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

# Dependencias y resultados de compilación
node_modules # Dependencias del proyecto
dist         # Salida de compilación para producción (cliente)
dist-ssr     # Salida de compilación para Server-Side Rendering (si aplica)
*.local      # Archivos de configuración local (ej. .env.local)

# Directorios y archivos específicos de editores y sistemas operativos
.vscode/* # Configuración de Visual Studio Code (ignora todo)
!.vscode/extensions.json # Excepto este archivo, que lista extensiones recomendadas
.idea                  # Configuración de IntelliJ IDEA
.DS_Store              # Archivos de sistema de macOS
*.suo                  # Archivos de solución de Visual Studio
*.ntvs* # Archivos de Visual Studio para Node.js Tools
*.njsproj              # Archivos de proyecto de Node.js en Visual Studio
*.sln                  # Archivos de solución de Visual Studio
*.sw?                  # Archivos de swap de editores (ej. Vim)