Developer proposes 'deny by default' .gitignore strategy to stop accidental commits
A developer suggests flipping the typical .gitignore convention: instead of listing files to ignore, developers should block everything with a wildcard and explicitly allow only the file types they want tracked, such as source files, README, and module files. This approach aims to prevent common mistakes like committing .DS_Store files, node_modules, IDE configs, or sensitive environment variables. The post also recommends using 'git check-ignore -v' to debug tracking issues and mentions lazygit as a useful Git terminal tool.
GoKawiil's interpretation of the reporting above, not reported fact.
As projects increasingly accumulate clutter from local tooling, IDE configs, and now AI-agent-related files, the traditional 'ignore what you don't want' model is becoming harder to maintain reliably. A default-deny approach shifts the burden of curation to something more deliberate, reducing the risk of leaking secrets or bloating repositories with junk. While not universally applicable, it offers a practical alternative for teams tired of after-the-fact cleanup and history rewrites.
- Default-deny .gitignore blocks everything except explicitly whitelisted files like *.go, go.mod, and README.md.
- This approach reduces risks of accidentally committing secrets, IDE files, or agentic tool artifacts.
- Developers can verify ignore behavior using 'git check-ignore -v' to avoid confusion over untracked files.
Pro Git (2nd Edition) by Scott Chacon — If .gitignore tricks like allowlisting everything intrigue you, Pro Git is the canonical reference that walks through ignore patterns, history rewriting, and cleaning up those accidental commits. It's a great desk companion for anyone who wants to stop fighting Git and start using it deliberately.
See Pro Git (2nd Edition) by Scott Chacon on Amazon → Affiliate link — we may earn a commission on purchases, at no extra cost to you. Product picked by AI based on this article; it is not a tested recommendation.Source: packagemain.tech — Alex Pliutau, 2026-09-05
Published there as: “.gitignore Everything by Default”
Read the original report → The summary and analysis above are GoKawiil's own, written from reporting by the source above. Facts and quotes belong to the original publisher.