.gitignore Generator
Generate .gitignore files for any language or framework. Select Node.js, Python, Go, Java, macOS, Windows, VS Code, and more.
Languages
OS
Editors
Infrastructure
Security
3 templates selected
How to Use .gitignore Generator
- 1Select the languages and frameworks in your project.
- 2Select your OS and editor for OS-specific ignores.
- 3Preview the combined .gitignore content.
- 4Copy and save it as .gitignore in your project root.
Zenovay
Privacy-first analytics for your website
Understand your visitors without invasive tracking. GDPR compliant, lightweight, and powerful.
Related Tools
JSON Formatter & ValidatorFormat, validate, and beautify JSON data with syntax highlighting and error detection.
JWT DecoderDecode and inspect JWT tokens. View header, payload, and verify signatures.
Base64 Encode/DecodeEncode text to Base64 or decode Base64 back to text. Supports UTF-8 and binary data.
URL Encode/DecodeEncode or decode URL components. Handle special characters, query strings, and full URLs.
Frequently Asked Questions
What is .gitignore?▾
.gitignore is a text file that tells Git which files and directories to ignore — they will not be tracked, staged, or committed. Place it in the repository root (or any subdirectory for local rules). Each line specifies a pattern: * matches anything, ** matches across directories, ! negates a pattern. Comments start with #. Ignored files remain on disk but are not included in git status, git add, or git commit.
Should I commit .gitignore to the repository?▾
Yes — .gitignore should almost always be committed. It ensures every contributor (and CI/CD pipelines) ignores the same files. Project-specific ignores (build output, secrets, dependencies) belong in the repository .gitignore. Personal editor/IDE settings that are not team-specific belong in your global .gitignore (~/.gitignore_global) so they apply across all repositories without affecting teammates.
How do I ignore already-tracked files?▾
Adding a file to .gitignore only prevents future tracking — it does not untrack already-committed files. To stop tracking a committed file: (1) git rm --cached filename to remove it from the index while keeping the local file; (2) Add the path to .gitignore; (3) Commit the changes. For directories: git rm -r --cached foldername/. This is commonly needed for node_modules/ that was accidentally committed before .gitignore was set up.
What is the difference between .gitignore and .gitkeep?▾
.gitignore tells Git which files to skip. .gitkeep is an informal convention (not a Git feature) for keeping empty directories tracked — Git cannot track empty directories, so developers add a .gitkeep file as a placeholder. Some teams use .gitkeep, others use .keep or a README.md. There is no official Git support for .gitkeep — it is just a regular file with a meaningful name.
Why does my .gitignore not work?▾
Common reasons: (1) File already tracked — run git rm --cached to stop tracking it. (2) Pattern is wrong — use git check-ignore -v filename to debug which rule applies. (3) File is in a submodule — .gitignore rules do not cross submodule boundaries. (4) Global .gitignore applies — check git config core.excludesFile. (5) Directory names need trailing slash — "build" matches files named build, while "build/" only matches directories.