HeadlinesBriefing favicon HeadlinesBriefing.com

Three Git Ignore Files You Didn't Know About

Hacker News •
×

I carried untracked files in repositories for years — markdown notes, agent plans — because adding them to .gitignore felt unclean. Then Claude suggested using .git/info/exclude, revealing git actually reads ignore patterns from three locations with identical syntax.

First, .gitignore in any directory affects everyone who clones the repo and gets committed — ideal for build output like target/ or __pycache__/. Second, .git/info/exclude only affects your clone, never gets committed, and lives inside .git so it's accident-proof. Perfect for personal scratch files. Third, a global excludes file (default ~/.config/git/ignore) applies to every repo on your machine — great for editor clutter like .idea/, .vscode/, .DS_Store.

Usage is simple: append patterns directly. Per repo: `echo 'plans/' >> .git/info/exclude`. For linked worktrees, use `$(git rev-parse --git-common-dir)/info/exclude`. Globally: create ~/.config/git/ignore and add patterns, or configure a custom path with `git config --global core.excludesFile ~/.gitignore_global`. Changes take effect immediately in `git status` for untracked files.

Note: Claude Code excludes ignored files from @-autocomplete by default, so plans vanish from the picker once added to .git/info/exclude.