.gitignore Generator
Build a .gitignore by combining curated templates for languages, frameworks, operating systems, and editors. Copy or download — entirely client-side.
About this tool
A good .gitignore keeps build output, dependency folders,
editor cruft, and OS junk files out of your repository. This generator
assembles one from curated templates: pick the languages and frameworks
your project uses, add your operating system and editor, and the rules are
combined into a single file with clear section headers, ready to copy or
download.
Real repositories are rarely one stack. A typical selection layers a
language (Node, Python, Go, Rust, Java, and more), optionally a framework
like Terraform or Docker, then the environment you work in —
macOS, Windows, or
Linux — and your editor, whether that is
JetBrains, VS Code, or
Vim. Mixing OS and editor templates matters on shared
teams, where a Mac user’s .DS_Store and a Windows user’s
Thumbs.db should both be ignored.
The templates cover the entries that matter most for each ecosystem and
stay deliberately concise rather than exhaustive — a starting point you can
trim or extend. Remember that .gitignore only affects files
Git is not already tracking: if something is already committed, untrack it
with git rm --cached first. Everything here is bundled with
the page, so no detail of your project leaves the browser.
Frequently asked questions
How do I combine multiple stacks?
Click every template that applies — language, framework, OS, and editor — and they are merged into one file, each under a labelled header. A polyglot repo on a Mac with VS Code might select Node, Python, macOS, and VS Code together.
Where does the .gitignore file go?
At the root of your repository, named exactly .gitignore. Git applies it to that directory and everything beneath it. You can also place additional .gitignore files in subdirectories for rules scoped to just that folder.
It is not ignoring a file I already committed — why?
gitignore only affects untracked files. If a file is already tracked, Git keeps watching it regardless. Run git rm --cached <file> to stop tracking it, then commit; the ignore rule takes effect from then on.
Should I commit lock files like Cargo.lock or package-lock.json?
Commit them for applications (reproducible builds); the Rust template notes that libraries often ignore Cargo.lock. Lock-file policy is project-specific, so review the generated rules against your team’s convention before committing.
Is anything sent to a server?
No. The templates are bundled with the page and assembled in your browser. Nothing about your project is transmitted.