.gitignore Generator

Build a merged, deduped .gitignore by checking off any combination of language, editor, and OS templates (Node, Python, VS Code, macOS, and more).

runs locally on your browser. Your data never leaves your device.

Templates

Languages & Frameworks

Editors & IDEs

Operating Systems

Other

Browsers won't save a download with a name that starts with a dot, so the file saves as "gitignore"; rename it to ".gitignore" after saving (copying instead avoids this, since you paste directly into a file you name yourself).

0Templates selected
0Pattern lines

Common Use Cases

Set up a .gitignore for a new Node/Python/Go project in one step, without hunting down separate templates
Combine a language template with your editor's and OS's templates so local IDE/OS clutter never gets committed
Add a properly merged .gitignore to a repository that never had one, without manually deduping overlapping entries
Quickly regenerate a clean .gitignore after switching editors or adding a new language to an existing project

About .gitignore Generator

A project's .gitignore file tells Git which files and folders it should never track: build output, dependency directories, local environment files, and the assorted clutter your editor or operating system drops into a project folder. Getting a good one usually means hunting down and pasting together several different templates: one for your language or framework, one for your editor, one for your OS. This generator does that merging for you.

Check off any combination of templates from the categories below: Languages & Frameworks (Node, Python, Java, Go, Rust, Ruby, PHP, C/C++, .NET, Android), Editors & IDEs (VS Code, IntelliJ IDEA/JetBrains, Sublime Text, Vim), Operating Systems (macOS, Windows, Linux), and a general Git template, and the output panel builds a single combined .gitignore live, in the order shown above. Every selected template gets its own labeled section, and any pattern line that already appeared in an earlier section (for example ".env" showing up in both the Node and PHP templates, or ".DS_Store" showing up in both the macOS and VS Code templates) is only kept once, so the result never repeats itself.

This is meant to cover the common case quickly, not to replace github/gitignore's full template collection for every possible framework or tool. If you need a stack that isn't listed, add its patterns to the generated file by hand afterward, or start from the closest match here.

Once you're happy with the result, copy it to your clipboard, or download it; browsers won't let a downloaded file's name start with a dot, so it saves as a plain file named "gitignore" that you rename to ".gitignore" afterward; copying and pasting into a file you create and name yourself sidesteps that entirely. Everything, from the templates to the merging and deduping, runs as plain JavaScript in your browser tab; nothing you select or generate is ever uploaded to a server, logged, or stored.

Frequently Asked Questions

How does the tool avoid duplicate lines when I select several templates?
It merges the selected templates in a fixed order and keeps a running record of every pattern line it has already written out. If a later template repeats a pattern an earlier one already contributed (like ".DS_Store" appearing in both the macOS and VS Code templates), that repeat is skipped; each unique pattern appears exactly once in the final file, even though every selected template still gets its own labeled section for whatever patterns it uniquely contributes.
Why does the downloaded file get named "gitignore" instead of ".gitignore"?
Browsers strip a leading dot from a downloaded file's name as a safety measure, so a download can never come through named exactly ".gitignore" no matter what this (or any) site requests. Rename the downloaded "gitignore" file to ".gitignore" after saving it, or avoid the issue entirely by using the copy button and pasting the result into a file you create and name yourself.
Can I select more than one template at a time?
Yes, that's the point. Check as many language, editor, and OS templates as apply to your project (e.g. Node + VS Code + macOS) and the output combines all of them into one file.
Does the order I click the checkboxes change the output?
No. The generated file always lists selected templates in the same fixed order (Languages & Frameworks, then Editors & IDEs, then Operating Systems, then Git), regardless of the order you checked them in, so the result is consistent no matter how you select them.
What if my language or tool isn't in the list?
This tool covers common languages, editors, and operating systems, not every possible framework. Generate the closest match and add any extra patterns your stack needs by hand; a .gitignore file is just plain text, so extending it afterward is straightforward.
Is anything I select or generate sent anywhere?
No. The templates are bundled directly into the page and the merging happens entirely in your browser using plain JavaScript, so nothing is uploaded to a server, logged, or stored anywhere outside your current browser tab.