Skip to main content
QUIETLYTIC
Developer

Gitignore Generator & Checker

Generate a .gitignore for common stacks, or check whether a path is actually ignored.

Local · nothing leaves this browser Pick a mode
Esc Clear
Esc Clear
Output

Choose stacks and press Generate.

How it works

Two directions of the same question, because they come up together: what should a new project's .gitignore contain, and does an existing one actually cover a specific path. Generate mode assembles a template from the stacks you pick; Check mode tests real paths against a pasted .gitignore.

Checking uses git's own pattern grammar, not a regex approximation

A trailing / only matches a directory, a leading / anchors to the file's own location rather than matching anywhere in the tree, ** behaves differently from a bare *, and a later ! line can re-include a path a broader pattern excluded. Getting any of that wrong in a checker is worse than not having one — a false "not ignored" is a credential that ends up committed. This uses the `ignore` library (the same pattern engine ESLint's own ignore-file handling is built on) rather than a hand-written approximation.

Templates are curated, not fetched

This tool makes no network request, so the per-stack templates are hand-written common entries rather than a live pull from GitHub's own template collection — enough to cover the usual build artefacts and local-only files for each stack, not a byte-for-byte mirror of any single source.

Example

Checking node_modules/react/index.js against a generated Node template reports it ignored, matched by the node_modules/ rule — Check mode always names which pattern line decided the verdict, not just the yes/no.

Frequently asked questions

How is Check mode different from eyeballing the .gitignore file?

Gitignore's pattern grammar has real edge cases — a trailing / matches only a directory, a leading / anchors to one location instead of matching anywhere, ** behaves differently from a bare *, and a later ! line can re-include a path a broader pattern excluded. This uses the ignore library, the same pattern engine ESLint's own ignore-file handling is built on, rather than a hand-written approximation that could report a false "not ignored" on a path that actually is.

Why does it name which pattern matched?

Because "ignored: yes" alone does not tell you which line to edit if the verdict is wrong. Every result names the specific pattern that decided it, so removing or negating that one line is a one-line fix instead of a guessing game across the whole file.

Can I combine multiple stacks?

Yes — check as many stack boxes as apply and Generate mode concatenates their sections under separate headers. A Node service with a JetBrains IDE and a Docker build picks all three rather than requiring three separate downloads merged by hand.

Related tools

From the intelligence desk