← All tools

.gitignore Already-Tracked File Finder

Adding a file to .gitignore does nothing if Git is already tracking it — the single most common reason people think their .gitignore is "broken." Paste your .gitignore and your tracked file list (git ls-files), and get the exact git rm --cached commands to fix every offender.

Why doesn't adding a file to .gitignore stop Git from tracking it?

Because .gitignore only tells Git which untracked files to skip when staging. Once a file is already tracked (added and committed at some point), Git keeps tracking every change to it forever, regardless of what .gitignore says — the ignore rule and the tracking decision are two separate things, and adding an ignore rule never retroactively untracks a file.

How do I actually stop Git from tracking a file that's in my .gitignore?

Run git rm --cached <path> (or git rm -r --cached <path> for a directory), then commit. The --cached flag removes it from Git's index only — the file stays exactly where it is on your disk — and once it's untracked, your existing .gitignore rule will keep it that way.

Where do I get my tracked file list?

Run git ls-files in your repo root and paste the full output — one path per line, exactly as Git prints it.

Does this tool upload my file list or .gitignore anywhere?

No. Everything is matched entirely in your browser with plain JavaScript — your file list and .gitignore contents are never sent to a server.