Menu

Generador de .gitignore

Crea un .gitignore limpio para cualquier stack: lenguajes, frameworks, IDEs y SO.

Última actualización

Stacks rápidos
Elige plantillas2 seleccionadas

Lenguajes

Frameworks

Editores e IDEs

Sistemas operativos

.gitignore · 37 líneas
# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
.pnpm-store/
.npm
.yarn-integrity

# Coverage
coverage/
*.lcov
.nyc_output

# Build output
dist/
build/

# Environment
.env
.env.local
.env.*.local

# macOS
.DS_Store
.AppleDouble
.LSOverride
Icon
._*
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

¿Qué es un generador de .gitignore?

Todo repositorio Git necesita un .gitignore. Es la lista en texto plano de rutas que Git **no** debe trackear: artefactos de build, carpetas de dependencias, configuración de IDE, basura del SO como .DS_Store. Sin él, tu primer commit arrastra node_modules/, .env y target/, y deshacer ese lío es mucho más molesto que dejar el archivo bien desde el principio.

Cada ecosistema ignora cosas distintas y la mayoría de proyectos cruzan varios. Una app típica de Node + TypeScript en un Mac con VS Code ya necesita la unión de cuatro listas. Escribir esto de memoria implica olvidar coverage/, filtrar un .env o colar un .idea/ de un compañero que usa JetBrains.

Por eso este generador empaqueta plantillas curadas del proyecto canónico github/gitignore — las mismas reglas que GitHub sugiere — y te deja apilarlas. Marca las casillas, y la herramienta emite un único .gitignore deduplicado que pegas en tu repo. Sin cuentas, sin subidas, todo en tu navegador.

Lo que aprenderás montando tu .gitignore

  • Los patrones de .gitignore usan sintaxis glob: *.log ignora todo log, build/ ignora una carpeta, !important.log re-incluye un archivo aunque un glob lo capture.
  • Los patrones se aplican relativos a la ubicación del .gitignore — un .gitignore dentro de src/ solo afecta a archivos bajo src/.
  • Los archivos ya trackeados **no** se ignoran retroactivamente. Si commiteaste node_modules/ y luego lo añades a .gitignore, sigues necesitando git rm -r --cached node_modules para des-trackearlo.

Cómo generar un .gitignore paso a paso

  1. Elige un preset (opcional)

    Si tu proyecto encaja con una combinación común — Next.js, Django, Rails — pulsa un preset para marcar las casillas correspondientes. Luego añade o quita una o dos si tienes extras.

  2. Añade tus lenguajes

    Cada lenguaje tiene artefactos: Node tiene node_modules/, Python tiene __pycache__/ y virtualenvs, Java tiene target/ y .class. Marca los que tu proyecto compila de verdad.

  3. Añade tus frameworks

    Encima de las reglas del lenguaje, los frameworks añaden sus propios directorios: Next.js quiere .next/ y .vercel, Django quiere staticfiles/ y db.sqlite3, Rails quiere tmp/ y /storage/*. Marca el que uses.

  4. Añade editores y SO

    Añade los editores del **equipo** (no solo el tuyo) — si alguien usa JetBrains o Vim, inclúyelo. Después suma los SO: macOS suelta .DS_Store, Windows suelta Thumbs.db, ambos son fáciles de commitear sin querer.

  5. Copia o descarga

    El panel derecho muestra la salida combinada y deduplicada. Pulsa **Copiar** para pegarla en un .gitignore en la raíz, o **Descargar** para guardar el archivo directamente.

Sintaxis de .gitignore — referencia rápida

Los patrones que escribirás más. Referencia completa en git-scm.com/docs/gitignore.

PatrónSignificadoEjemplo
node_modulesIgnora un archivo o carpeta con este nombre exacto en cualquier lugar del árbolCaptura tanto /node_modules como src/node_modules
node_modules/Barra final — solo coincide con **carpetas**, no con archivos del mismo nombreNo captura un archivo accidentalmente llamado node_modules
/buildBarra inicial — ancla al directorio del .gitignoreCaptura /build pero no src/build
*.logGlob — captura cualquier archivo que termine en .logCaptura error.log, debug.log, logs/foo.log
!important.logNegación — re-incluye un archivo capturado por una regla previaCombínalo con *.log para mantener un log trackeado
docs/**/draftDoble asterisco — captura draft en cualquier subcarpeta de docs/Captura docs/v1/draft y docs/2025/q1/draft
# commentComentario — Git ignora las líneas que empiezan por #Agrupa reglas con cabeceras como # Node.js

Ejemplos de .gitignore para probar

Un .gitignore mínimo de Node.js + macOS

Lo que necesita cualquier proyecto Node en un Mac

# Node.js node_modules/ npm-debug.log* dist/ .env .env.local # macOS .DS_Store ._*

El mínimo para cualquier proyecto Node compartido con un compañero en macOS. Hasta un side project pequeño debería tener estas reglas — sin .DS_Store y node_modules/ pelearás conflictos absurdos.

Python + Django + JetBrains

Stack típico de Python en servidor

# Python __pycache__/ *.py[cod] .venv .pytest_cache/ # Django *.log local_settings.py db.sqlite3 media/ staticfiles/ # JetBrains .idea/ *.iml

Un backend Django típico desarrollado en PyCharm. Fíjate en que el db.sqlite3 local está ignorado — producción no lo usa y commiteralo filtra datos de dev y rompe clones nuevos de tus compañeros.

Anula una regla con una negación

Ignora todos los logs salvo uno

*.log !keep-me.log

La primera línea ignora todo .log. !keep-me.log reincluye ese archivo concreto. Las negaciones solo funcionan para archivos que ya estaban ignorados — no puedes re-incluir un archivo dentro de una carpeta ignorada.

Errores comunes con .gitignore

  • Añadir .gitignore tarde y esperar que los archivos commiteados desaparezcan. No lo hacen — necesitas git rm -r --cached <ruta> para des-trackearlos.
  • Commitear un .env aunque sea una vez. Un único commit deja el secreto en el historial para siempre. Añade .env* al .gitignore **antes** del primer commit, y rota cualquier secreto que se haya colado.
  • Olvidar el ruido del SO en repos compartidos. Si un solo compañero está en macOS y el repo no ignora .DS_Store, esos archivos aparecerán en todas las PR.

Preguntas frecuentes — Generador de .gitignore

¿De dónde salen estas plantillas?
Vienen del proyecto open-source github/gitignore — la misma fuente que usa GitHub cuando marcas "añadir .gitignore" al crear un repo. Las hemos recortado a las reglas que los equipos realmente necesitan y agrupado por categoría.
¿Debo commitear el propio archivo .gitignore?
Sí. El .gitignore está pensado para versionarse y compartirse con el equipo. Es el *contrato* sobre qué se trackea. La excepción son preferencias personales (ej. tu editor) — esas van en tu ~/.gitignore_global global.
¿Cómo des-trackeo un archivo que ya commiteé?
Añádelo primero al .gitignore y luego ejecuta git rm --cached <ruta> (o git rm -r --cached <carpeta>) para quitarlo del índice sin borrarlo en disco. Commitea ambos cambios juntos para que tus compañeros vean la actualización.
¿Puedo tener varios .gitignore en un mismo repo?
Sí. Git busca un .gitignore en cada directorio y aplica las reglas a ese subárbol. Es útil en monorepos donde frontend y backend tienen reglas muy distintas — deja las reglas comunes en la raíz y las específicas del lenguaje en cada paquete.
¿Cuál es la diferencia entre .gitignore y .git/info/exclude?
.gitignore se commitea y comparte con el equipo. .git/info/exclude vive solo en tu clon local y sirve para exclusiones personales que no quieres pushear. Para exclusiones en todos tus repos, usa un ~/.gitignore_global.

Otras herramientas para desarrolladores

Coddy programming languages illustration

Aprende a programar con Coddy

COMENZAR