AMAZINGINDEX.COM 让生活多一点 Amazing
45.5
VOL. 2026.09
2026.09.06
← 返回 2026.09.06 日报
日报快照 · Daily Snapshot
NO. 010

Git 白名单模式防误提交

#ARTICLE HackerNews 2026.09.06
推荐指数 52.0 NO. 010 · 2026.09.06
发布2026/09/05Score100Comments112

一种反向 .gitignore 策略:默认忽略所有文件,仅显式允许必要文件入库。从源头杜绝密钥、依赖缓存等敏感/冗余文件意外提交,比传统黑名单模式更彻底。

传统黑名单模式的问题在于开发者永远列不全该忽略什么,新工具链、IDE、操作系统随时产生新垃圾文件。白名单模式在 monorepo 和团队协作中尤其有价值,新人入职不再依赖「前辈传下来的 .gitignore 模板」。

但要注意副作用:临时调试文件、生成的 coverage 报告等需要频繁手动放行,可能拖慢迭代节奏。建议仅在基础设施、SDK 发布仓库等「文件变动可控」的场景强制推行,业务代码仓库可保留黑名单为主、白名单兜底的分层策略。

一个立即能用的技巧:把 !*.go 这类语言级通配放团队共享模板,项目级只维护 !internal/ 等业务目录,减少重复配置。

意见分歧 107 条评论

核心争论:白名单模式是否过度,还是选择性提交/工具辅助更实用

matthewmc3

I'm not convinced about ignoring everything, but one of the best changes I ever made to my git workflow was ignoring all dotfiles by default by adding `.*` to ~/.config/git/ignore. My projects do now have to have a boiler plate of unignoring the common ones (!.gitignore, !.gitattribut

der_gopher

I do the same

GranPC

Couldn't you put !.gitignore et al in your global config file?

替代方案: 全局 .gitignoregit add -pLazygitmagitoh-my-zsh git aliases编辑器 git-status 插件
查看原文 →