Generador de .gitignore

Construye un .gitignore marcando los lenguajes, SO y editores que usas, combina y elimina duplicados automáticamente, un clic para copiar o descargar.

🌐 English

🔒 Privado por diseño: todo se genera localmente en tu navegador; nada se sube nunca a ningún servidor.

Cómo generar un .gitignore

  1. Marca cada combinación de lenguaje, sistema operativo y editor que aplique a tu proyecto, por ejemplo Node.js, macOS y VS Code para una configuración típica de JS/Mac.
  2. Haz clic en Generar .gitignore.
  3. Copia el resultado o descárgalo, guárdalo como .gitignore en la carpeta raíz de tu proyecto, y haz commit.

Por qué un generador basado en casillas

El .gitignore real de un proyecto casi siempre es una combinación de varias cosas no relacionadas: los artefactos de compilación propios del lenguaje/runtime, el sistema operativo en el que desarrollas, y el editor que sea que genere su propia carpeta local de ajustes. Ensamblarlo a mano de memoria (o a partir de tres respuestas distintas medio recordadas de Stack Overflow) es exactamente el tipo de tarea pequeña y repetitiva que merece la pena automatizar, marca las casillas que apliquen, y esta herramienta combina solo esas, en un orden fijo, con las reglas duplicadas eliminadas automáticamente.

Qué incluye (un subconjunto curado, no un espejo en vivo)

Esta herramienta cubre 11 de los patrones combinados más habituales: Node.js, Python, Java, Go, Rust, macOS, Windows, Linux, VS Code, IntelliJ IDEA y Vim. Cada uno es un subconjunto escrito a mano y de alta confianza de los patrones de exclusión estándar bien conocidos de ese ecosistema, no un espejo automático y actualizado byte a byte del propio github/gitignore de GitHub, que sigue siendo la referencia autorizada si necesitas el contenido exacto y actual de una plantilla concreta.

Combinar y eliminar duplicados, explicado

Cada plantilla marcada recibe su propia cabecera de sección # <Nombre>, siempre emitida en el mismo orden (Node → Python → Java → Go → Rust → macOS → Windows → Linux → VS Code → IntelliJ IDEA → Vim) sin importar en qué orden marcaste las casillas. Si el mismo patrón de exclusión aparece en más de una sección que elegiste (por ejemplo tanto la plantilla de Java como la de IntelliJ IDEA excluyen out/) se escribe solo una vez, la primera vez que aparece, así que el archivo final no repite la misma regla bajo dos cabeceras distintas.

Un .gitignore son tres listas sin relación dentro de un archivo

Casi el archivo de exclusiones de nadie trata de una sola cosa. Está el lenguaje o entorno de ejecución, que deja salida de compilación y carpetas de dependencias en el árbol de trabajo. Está el sistema operativo, que esparce sus propios metadatos allá donde abras una carpeta. Y está el editor, que guarda estado por proyecto justo al lado de tu código. Tres listas, tres orígenes, normalmente ensambladas de memoria una vez y nunca más revisadas.

Por eso esta página es una columna de casillas y no un campo de texto. Tú describes la máquina y el proyecto, y el generador escribe esas listas separadas como un solo archivo con una sección etiquetada para cada una.

Comprometerlo, y la trampa de los archivos que Git ya sigue

Una regla de exclusión no es un borrado. Git la aplica solo a los archivos que todavía no sigue, así que añadir .env al archivo no hace absolutamente nada si .env se comprometió el mes pasado. Esa es la sorpresa más común alrededor de este archivo, y la solución es quitar la ruta del índice y comprometer esa eliminación antes de que la regla nueva tenga ningún efecto. Para cualquier cosa secreta, da por hecho que está comprometida en el momento en que llega a una rama compartida, porque el historial la conserva.

El otro hábito que conviene adquirir es revisar el diff. Regenerar una base para un archivo antiguo que ha ido derivando es buena idea, pero las líneas específicas del proyecto que alguien fue añadiendo con los años son exactamente las que no te puedes permitir perder. Pega el archivo viejo y el nuevo en el Comparador de Textos y fusiona deliberadamente en lugar de sobrescribir.

Dónde acaba .gitignore y empieza .dockerignore

Estos dos archivos se parecen y responden a preguntas distintas. Este decide qué registra Git; un .dockerignore decide qué se envía al demonio de Docker como contexto de construcción, que es una cuestión de tamaño y de caché y no de historial. El Generador de Dockerfile produce ese segundo archivo, seleccionado mediante su desplegable de qué archivo mostrar, y su salida para Node.js cubre .git, node_modules/, .env y un puñado de directorios de compilación con independencia de lo que marques aquí.

Los repositorios nuevos suelen necesitar varios de estos a la vez, así que merece la pena saber qué hay cerca. El Generador de Configuración Nginx y .htaccess construye las reglas del servidor, y el Generador de README se encarga de la puerta de entrada.

Una nota de implementación, porque explica una rareza que quizá notes: el módulo entrega al contenedor un archivo llamado .gitignore, pero el contenedor del generador solo lee el texto de ese archivo hacia el recuadro de resultado. El nombre nunca te llega. Es peso muerto, conservado porque todas las herramientas de este sitio devuelven la misma forma, y es peso muerto precisamente porque la maquetación de generador ofrece un botón de copiar y ninguna ruta de descarga en la que ese nombre pudiera acabar.

Sin viaje de ida y vuelta a un servidor, sin cuenta

Cada casilla se combina en texto plano usando JavaScript que se ejecuta enteramente en tu pestaña del navegador. No hay subida, no hay cuenta, y ningún dato sobre tu proyecto (ni siquiera el hecho de que generaste un .gitignore) sale jamás de tu dispositivo.

Usos habituales

Cómo funciona, en imágenes

Captura de pantalla de la herramienta Generador de .gitignore con Node.js (node_modules, npm/yarn logs, .env, dist/build) en on, Python (__pycache__, venv, .egg-info, pytest/mypy caches) en off
Generador de .gitignore en pleno proceso: Node.js (node_modules, npm/yarn logs, .env, dist/build) en on, Python (__pycache__, venv, .egg-info, pytest/mypy caches) en off.
Captura de pantalla del resultado de Generador de .gitignore mostrando la salida generada «# Node.js # Dependencies node_modules/ .pnp.* # …»
El resultado final: la salida generada «# Node.js # Dependencies node_modules/ .pnp.* # …». El enlace de descarga es una URL blob local: el archivo nunca sale de tu dispositivo.

Preguntas frecuentes

¿Es esto un espejo exacto y sincronizado en vivo de las plantillas oficiales de gitignore de GitHub?

No, y eso se declara deliberadamente, no se disimula. El propio repositorio github/gitignore de GitHub es la referencia real y canónica para estas plantillas, pero los datos de plantilla de esta herramienta son un subconjunto curado y escrito a mano de los patrones extremadamente comunes y bien conocidos que suele contener el archivo .gitignore de cada ecosistema (node_modules/, __pycache__/, .DS_Store, .vscode/*, etc.), no se obtienen de ese repositorio y no se garantiza que sean idénticos byte a byte a lo que contenga actualmente el archivo oficial. Si necesitas el archivo oficial exacto para un ecosistema concreto, el propio repositorio de GitHub es la fuente autorizada; esta herramienta sirve para combinar rápidamente varios comunes en un punto de partida.

¿Por qué casillas en lugar de un desplegable para lenguaje/SO/editor?

El esquema de opciones que comparten las herramientas de este sitio solo admite controles de tipo select/número/casilla, no hay ninguna lista multiselección dinámica. Un pequeño conjunto de casillas independientes te permite combinar cualquier número de lenguajes, sistemas operativos y editores en un solo paso (por ejemplo Node + Python + macOS + VS Code a la vez), algo que un puñado de desplegables de opción única no podría expresar con tanta claridad. La lista se mantiene deliberadamente corta (11 de las combinaciones más buscadas habitualmente) en lugar de cubrir cada plantilla posible.

¿Cómo funciona realmente el comportamiento de "combinar y eliminar duplicados"?

Cada plantilla marcada se convierte en su propia sección claramente etiquetada (un comentario "# Node.js" seguido de sus patrones), siempre en el mismo orden fijo sin importar en qué orden marcaste las casillas. Si la misma línea de patrón de exclusión aparece en más de una plantilla seleccionada (por ejemplo, tanto la plantilla de Java como la de IntelliJ IDEA incluyen "out/"), se conserva solo una vez (en la primera sección donde aparece) así que el archivo combinado no repite la misma regla. Las líneas de comentario nunca se deduplican de esta manera, aunque dos plantillas usen el mismo texto de comentario, ya que son solo etiquetas de sección, no reglas.

¿Puedo editar el archivo generado después?

Sí, la salida es un archivo .gitignore plano y ordinario. Añade tus propias exclusiones específicas del proyecto (una carpeta de datos, un archivo local de secretos, un artefacto de compilación que esta herramienta no conoce) arriba, abajo o entre las secciones generadas; nada sobre el formato es especial ni necesita quedarse tal cual.

¿Qué pasa si no marco ninguna casilla?

Obtienes un mensaje de marcador de posición corto y honesto pidiéndote que marques al menos una casilla, en lugar de una descarga vacía y confusa.

¿Esta herramienta envía algo a un servidor?

No. Cada casilla se combina en el texto final usando JavaScript plano que se ejecuta en tu pestaña del navegador, no hay ninguna llamada a API, ninguna cuenta, y nada sobre tu proyecto sale jamás de tu dispositivo.

Uso un lenguaje o editor que no está en la lista, ¿qué debería hacer?

Marca las coincidencias más cercanas aquí como punto de partida, y luego pega a mano las líneas extra que necesites, o busca el archivo específico de ese ecosistema directamente en el propio repositorio github/gitignore de GitHub y combínalo tú mismo.

Herramientas relacionadas