Hacker News近期围绕「.gitignore默认忽略一切」(.gitignore Everything by Default)展开讨论,聚焦Git工作流中文件忽略策略的取舍。原文章提出在仓库中默认忽略所有文件、仅通过白名单放行必要内容的做法,引发开发者不同立场的交锋。有开发者反对「git add .」式的全量添加,认为选择性暂存(staging)能有效避免误提交问题。争议焦点之一是CLAUDE.md、AGENTS.md等AI智能体配置文件是否属于「不该入库的杂物」:有评论明确反对这一说法,指出这些文件承载项目专属的AI协作规则,提交到仓库可让其他使用智能体的协作者产出同样质量的代码,不应被默认忽略。一位开发者分享了在全局配置~/.config/git/ignore中加入.*规则的实践:默认忽略所有点文件,再反白名单放行.gitignore、.gitattributes、.github、.editorconfig等常用项,此后可随意在项目中创建临时文件、缓存目录或.code_analysis.md、.todos.txt等Claude辅助文件,无需逐个维护.gitignore。另有评论建议将白名单放入全局配置、建立playground专用目录,或使用git add -p逐块确认变更。还有人指出,现代语言项目多有src/、tests/目录,选择性添加并不困难。
事件分析
这场讨论的技术看点在于「黑名单」与「白名单」两种.gitignore哲学的权衡:黑名单维护简单但容易遗漏,白名单更安全却需持续维护反忽略规则,全局配置提供了一条折中路径。AI编程工具的普及正在放大这一矛盾,CLAUDE.md、AGENTS.md、.code_analysis.md等智能体辅助文件大量涌现,仓库卫生管理的复杂度随之上升。产业层面,CLAUDE.md是否入库之争实质是AI协作规范的确立过程:这类文件相当于写给智能体的项目文档,纳入版本控制可保证团队内AI行为一致,正逐渐成为工程实践的新共识。后续围绕AI配置文件的提交规范、目录约定等工程化标准可能进一步成型。
核心观点:AI智能体配置文件正在重塑代码仓库的边界规则,.gitignore之争本质是人机协作规范的博弈。
原文链接:Hacker News