.gitignore Generator — merge ready-made ignore templates for your stack
.gitignore Generator
Tick the languages, frameworks, editors, operating systems and tools that appear in your repository and this page merges
their curated ignore templates into a single .gitignore file. Patterns are de-duplicated across templates, grouped
under a comment header per template, and written in a sensible order — copy the result straight into your project or
download it. The template search filters the list instantly, and everything runs locally in your browser.
0 selected
No templates match your search.
Generated .gitignore
How the merge works: each ticked template adds a # Template Name comment block with its patterns.
Identical patterns from different templates are only written once (the first occurrence wins), so combining
“Node.js” with “macOS” or “Visual Studio Code” never produces duplicate lines.
node_modules/, editor folders, OS junk files and build outputs are the usual suspects — a good rule of thumb is to ignore
anything that is generated, downloaded or machine-specific, and to keep real source, config and documentation tracked.
Note that a .gitignore only affects untracked files; to stop tracking an already-committed file use
git rm --cached <file>.
Privacy: the templates are embedded in this page and the merge runs locally — nothing you select is ever uploaded.
How does .gitignore matching work?
Patterns are globs with a few rules worth knowing: *.log matches at any depth, build/ with a trailing slash matches directories only, a leading slash like /config.local anchors the pattern to the repository root, and ** spans directory levels. Git checks patterns bottom-up: a file is ignored when the last matching line says so, which is how a later ! exception can re-include what an earlier line excluded.
An exception cannot reach inside an excluded directory — if build/ is ignored, !build/keep.js never applies; you must un-ignore the directory and re-ignore its other contents instead.
🔷 Code & Dev Tools
Developer utilities running entirely in your browser.