About this tool
Build a .gitignore by combining language, framework, IDE and OS templates with automatic de-duplication.
This generator builds a complete .gitignore file by combining per-stack templates — nine languages, five frameworks, four editors and three operating systems — into one de-duplicated, sectioned file. The pattern sets track the community templates maintained at github.com/github/gitignore, the same collection GitHub offers at repository creation, and the output follows the gitignore syntax documented by git itself. Tick your stack, add any custom patterns, and copy the result.
Open Gitignore Generator by Stack on AltFTool — it loads instantly in your browser.
Provide your input — an image, text, or data.
Let the tool analyze or generate the result.
Review, refine, and reuse the output wherever you need it.
Language, framework, IDE and OS templates merge into labelled sections in a sensible order.
Patterns shared between templates, like dist/ in Node and Vite, are emitted exactly once.
Append project-specific entries in their own section, de-duplicated against the templates.
Anything generated rather than authored: dependency directories (node_modules/, vendor/), build output (dist/, target/, .next/), caches, logs, editor metadata (.idea/, .vscode/) and OS clutter (.DS_Store, Thumbs.db). Secrets like .env files belong there too — though ignoring them prevents future commits, it does not scrub ones already pushed.
.gitignore only affects untracked files — once a file is committed, Git keeps tracking it regardless. Run 'git rm --cached <file>' (or -r for a directory) to remove it from the index while keeping it on disk, then commit; from that point the ignore rule applies.
A trailing slash makes the pattern match directories only: 'build/' ignores a build directory and everything in it but not a file named build. Other key syntax: '*' matches within one path segment, '**' crosses directories, '#' starts a comment, and a leading '!' re-includes a previously ignored path.
Purists put personal noise like .DS_Store and .idea/ in a global ignore file (configured with git config core.excludesFile) so project files stay stack-specific. In practice most teams add them to the project .gitignore anyway, because it protects every contributor regardless of their local setup — both approaches work, and this generator supports the project-file route.