Gitignore generator
Tick your stack, get a clean .gitignore — no button, no upload.
Add your own ignore patterns
Generated .gitignore
How to use it
- Tick the templates that match your stack — a language (Node, Python), your OS (macOS, Windows), your editor (VS Code, IntelliJ) and your cloud host. The .gitignore is built and de-duplicated as you tick, there is no button to press.
- Use the search box to jump to a template by name, or the category chips to narrow the list. Ticking and unticking is instant.
- When the result looks right, hit “Copy” to take it away or “Download .gitignore” to save the file. Open the “Add your own ignore patterns” box to append project-specific lines — they are merged and de-duplicated too.
Example
Selection
Ticked: Node, Python
.gitignore
### Node ### node_modules/ dist/ *.log .env ### Python ### __pycache__/ *.py[cod] .env
The example ticks Node and Python. Both templates contain “*.log” and “.env”, but the combined file keeps each line only once because lines are de-duplicated in the order they appear. Count shows “Selected: 2”.
Rules, limits and known issues
- Templates are bundled into the page (about 44 of the most common languages, frameworks, OSes, editors and cloud hosts) — nothing is fetched over the network and nothing is uploaded.
- Combining de-duplicates every line in order: if two templates ignore the same thing (for example “*.log” in both Node and Python), it appears only once, near where it first occurred.
- Template names and comments stay exactly as Git expects them (Node, macOS, “# Logs”…) — they are a cross-language standard, so they are not translated. Only the interface is localized.
- The “Add your own ignore patterns” box is merged into the same de-duplication set, so a line you type that a template already has will not be repeated.
- No full 400+ template library: only the highest-frequency entries are included. For rare stacks, copy the official template from the GitHub gitignore repository. Templates update with each site release, not live.
- Custom patterns are not syntax-checked — anything you type is pasted as-is; Git itself reports invalid patterns. No accounts, no history, no shareable selection: the share link carries no choices.
Related tools
What people usually need next, once the file is ready.