¿Qué es y qué se guarda en el archivo .gitignore?

Es uno de los elementos más importantes del proyecto.

Contiene una lista de texto con los nombres de archivos y carpetas que Git debe ignorar. Le indica a Git qué elementos NO deben guardarse en el repositorio (ya sea GitHub, GitLab o Bitbucket).

¿Qué suele incluir dentro?

  • Carpetas generadas automáticamente: node_modules/, .astro/.
    La carpeta dist/, en caso de usar el GitHub como un repositorio para el control de versiones.

    En el caso de la carpeta /dist, las Plataformas Modernas o CI/CD (Vercel, Netlify, Cloudflare Pages, GitHub Actions): se conectan al repositorio de GitHub, leen el contenido del archivo .gitignore (para no bajar por ejemplo node_modules), instalan las dependencias por su cuenta y ejecutan la instrucción npm run build en sus propios servidores de forma automática.

  • Archivos de log: npm-debug.log*, yarn-debug.log*, yarn-error.log*, pnpm-debug.log*.
  • Archivos de dependencias: package-lock.json, yarn.lock, pnpm-lock.yaml.
  • Archivos de compilación: *.tsbuildinfo, *.js.map, *.css.map, *.html.map.
  • Archivos de sistema: .DS_Store, Thumbs.db, vscode/, idea/, history/.
  • Archivos de prueba: *.test.js, *.spec.js, *.test.ts, *.spec.ts.
  • Archivos de documentación generada: docs/, coverage/, reports/.
  • Archivos de caché: .cache/, .next/, .nuxt/, .vuepress/, .vite/, .parcel-cache/.
  • Archivos de configuración de editores: .editorconfig, .prettierrc, .eslintrc, .stylelintrc.
  • Archivos de configuración de CI/CD: .github/, .gitlab-ci.yml, .circleci/, .travis.yml.
  • Archivos de configuración de contenedores: Dockerfile, docker-compose.yml, .dockerignore.
  • Archivos de configuración de entornos virtuales: .venv/, env/, venv/, .python-version.
  • Archivos con claves secretas o variables de entorno: .env, .env.production, .env.development, .env.test.
  • Archivos del sistema operativo o editores: .DS_Store (Mac), Thumbs.db (Windows), .vscode/.

¿Se sube al hosting o producción?

✋ NO.

No cumple ninguna función en el servidor web.

Sin embargo,

👍 SÍ

...debe subirse al repositorio de GitHub, para que cualquier persona que clone el proyecto (o la plataforma de despliegue como Vercel/Netlify) sepa qué archivos omitir.

Archivo que SÍ se suben a Github

Estas carpetas y archivos se suben a GitHub si se desea que las plataformas de despliegue sean quienes construyan el proyecto.

Carpetas con el código fuente del proyecto:

  • src/. La más importante. Contiene todo el corazón del proyecto.
  • public/. Todos los archivos estáticos tal cual se menciona anteriormente (imágenes puras, favicons, robots.txt, la carpeta admin/ de Decap CMS, etc.).

Archivos clave en la raíz que TAMBIÉN subes:

  • astro.config.mjs. Contiene la configuración del proyecto.
  • package.json y pnpm-lock.yaml. El primero (package.json) es CRÍTICO, ya contiene la lista de librerías que usa el proyecto para que la plataforma en la nube sepa qué instalar.
  • README.md. Documentación del proyecto.
  • .gitignore. Indica qué archivos no deben ser versionados.
  • tsconfig.json. Configuración de TypeScript.

Archivos .env

Los archivos .env contienen variables de entorno y claves secretas, credenciales, tokens de acceso a APIs externas o URLs de bases de datos. NO deben subirse al repositorio de GitHub.

Ejemplo de un archivo .env: