ZeroTool Workbench

Gitignore Generator

Build a .gitignore from 200+ official github/gitignore templates — pick languages, frameworks, IDEs, and OS, merge with deduplication, copy or download. 100% client-side.

100% Client-Side Your data never leaves your browser Free · No Sign-Up
Languages & Frameworks 0 / 162
IDEs, OS & Tools 0 / 75
Add custom rules (optional)
.gitignore
 

How to Use

  1. Type a stack name in the search box — for example node, macos, or jetbrains.
  2. Tick the templates you need. Selected stacks appear as removable chips at the top.
  3. Optionally expand Add custom rules to append project-specific paths.
  4. The merged .gitignore updates live below — click Copy or Download.
  5. Drop the file into your repository root and commit.

What is a .gitignore file?

A .gitignore file lists patterns Git should ignore — typically build artifacts, OS metadata, IDE caches, dependency directories, and secrets. Patterns follow gitignore glob syntax (*.log, build/, !keep-this.log) and apply per directory. Every Git repository should ship one to keep clones reproducible and prevent leaking environment-specific noise.

Common Stack Combinations

  • Full-stack JavaScript: Node + React + macOS + JetBrains
  • Python data project: Python + JupyterNotebooks + macOS + VisualStudioCode
  • Mobile native: Android + Java + Gradle + IntelliJ + macOS
  • Static site: Node + Hugo (or Jekyll) + macOS + VisualStudioCode
  • Go service: Go + macOS + VisualStudioCode + JetBrains

How merging works

Selected templates are sorted alphabetically and concatenated. For each template we emit a ### Name.gitignore header so you can trace which rules came from where. Identical rule lines across templates are dropped after the first appearance, but comments and blank lines are kept verbatim. Custom rules go last under ### Custom additions. The output starts with a small attribution header pointing back to ZeroTool and the github/gitignore source — remove it freely if you prefer a clean file.

Why a curated bundle

Crawling github/gitignore at request time would add network latency and rate-limit exposure. We snapshot the repository at build time, dedupe IDs, and ship the result as a single TypeScript module — predictable, auditable, and zero runtime dependencies. Refreshing pulls a new snapshot from upstream and replaces the bundle in one commit.

FAQ

Where do the templates come from?

Every template ships from the official github/gitignore repository (CC0-1.0). We bundle the repository root — programming languages and frameworks — plus the Global/ subdirectory for IDEs, operating systems, editors, and build tools. The community/ subdirectory is intentionally excluded to keep quality predictable.

How are duplicate rules handled when I select multiple templates?

Each rule line is normalized (trimmed) and deduplicated across all selected templates. The first occurrence wins; later duplicates are silently dropped. Comments and blank lines are preserved so each section's provenance stays readable.

Can I add my own rules?

Yes. Open the 'Add custom rules' section below the templates and enter project-specific paths or globs. They are appended at the end under '### Custom additions' and participate in the same dedup pass.

How is this different from gitignore.io?

Same upstream source (github/gitignore). Differences: four localized UIs (English / 中文 / 日本語 / 한국어), live preview with section-provenance comments, fully client-side execution (nothing leaves the browser), and a bundled offline-capable template set.

How often are the templates refreshed?

The bundle is regenerated on demand from the upstream repository and committed to source. Upstream changes a few times a month, so plan for periodic refreshes; existing templates rarely break compatibility because gitignore syntax is stable.