How to use
Paste your project root .gitignore into “.gitignore contents”, or choose the file.
Enter the paths to test in “Paths to check”, one per line. “Choose a folder” reads only the names and lists them.
Read the “Deciding line” to see which rule settled the result. If a parent folder is excluded, that folder is named.
Use “Make a .gitignore” to combine common presets such as Node, Python or Java, then copy or save the file.
Paste a commit message in “Commit message” to check the Conventional Commits format and the subject length.
What it does
Per-path verdicts with the deciding line
For each path the last matching line is shown with its line number, so you know which line to change.
Parent-folder exclusion as in git
As in git, a file inside an excluded folder is not brought back by a “!” line. The page reproduces this.
Judged by the pattern rules of git
Handles the slash position (anchored or not), a trailing slash (folders only), **, !, escaped # and !, trailing spaces and [...] brackets, as in the git documentation.
Generate from common presets
Choose Node.js, Python, Java, Go, macOS, Windows, JetBrains or VS Code. Duplicate lines are removed, and the source is written in the file.
Commit message format check
Checks Conventional Commits 1.0.0: type(scope)!: description, body, footers and BREAKING CHANGE, and shows the subject length.
Folders: names only
Choosing a folder reads only the file names. Contents are not read and nothing is sent anywhere.
Use cases
- Find out why a file is not ignored although it is in .gitignore, or is ignored when it should not be
- A “!” rule does not bring a file back. Check whether a parent folder is excluded
- Create a .gitignore quickly for a new Node or Python project
- Keep the team’s commit messages in the form “type(scope): description”
- Check the git rm --cached steps for a file that is already tracked
Capability matrix
| Feature | Support | Notes |
|---|---|---|
| Per-path verdict (ignored or not) from .gitignore | Supported | — |
| Deciding line with its number, and parent-folder exclusion | Supported | — |
| Negation (!), **, [...] and the trailing-slash rule | Supported | Follows the git PATTERN FORMAT |
| .gitignore generation from common items | Partial | An excerpt of 8 presets, not every template |
| Commit message format and subject length check | Supported | — |
| Judging the quality of a commit message’s content | Not supported | Only format and length are checked |
| .gitignore in subfolders, .git/info/exclude, global excludes | Not supported | Not read |
| Verdicts for files already tracked by Git | Not supported | Shows the git rm --cached steps instead |
| Running git commands or accessing a repository | Not supported | — |
| Reading paths from a folder | Partial | File names only; contents are not read |
Limits & notes
- The .gitignore is limited to 500,000 characters and 5,000 lines; up to 5,000 paths are checked.
- Case is significant by default, as on Linux. With core.ignorecase enabled it is not.
- A file that Git already tracks is not ignored by .gitignore. This note is always shown.
- Confirm real results with git check-ignore -v in a repository. This tool does not replace it.
Privacy & safety
The .gitignore, the paths and the commit message are processed only in your browser. Nothing is sent or stored. When you choose a folder, only file names are read. Closing the page clears everything.
FAQ
Why is a file not ignored although it is in .gitignore?
Why does a “!” line not bring the file back?
What does a “/” in a .gitignore line mean?
How should a commit message look?
How long should the subject be?
Where do the .gitignore templates come from?
Related tools
Diff Tool — Text & Code Compare
Paste or drop two versions and see added and removed lines, plus the exact words that changed inside each line. Copy or save the result as a unified patch. Nothing leaves your browser.
Regex Tester
Type a pattern and matches light up in the test string instantly. Capture groups, replacement output and what each part of the pattern means are all on one screen — and patterns that would freeze your browser are stopped after one second.
Text Studio — Character Counter & Text Cleaner
Paste text to see characters, words, lines and bytes instantly, then clean it up in one click — change case, remove duplicate or blank lines, sort naturally, convert line breaks. Every action reports what changed and can be undone.
UUID / ULID / NanoID / Token Generator
A UUID is ready the moment the page opens. Switch to UUID v7, ULID, NanoID or a random token, generate up to 10,000 at once and save them as .txt, .csv or .json. Paste an existing UUID or ULID to read its embedded time and version.
JSON Studio — Formatter & Validator
Paste JSON to format, minify or validate it instantly. Errors are shown with the exact line, column and cause, and comments or trailing commas can be auto-repaired. Your data never leaves your device.
Code Formatter — Format & Minify
Paste code to format it with the language auto-detected. Choose indent, line width, semicolons, quotes and trailing commas; JavaScript, CSS and HTML can also be minified with before/after size and reduction. Your code never leaves the browser.
Last updated: