Field Note

不要把 node_modules 和 dist 提交到 GitHub

node_modules 是依赖安装结果,dist 是构建输出,它们通常不应该进入 Git 仓库。提交前用 .gitignore 排除它们,再用 git status 确认。

一句话结论

node_modules 和 dist 是构建过程的产物,不是项目源码。提交它们不仅让仓库膨胀,还会在每次依赖更新或重新构建时产生大量无意义的 diff。造物栈当前阶段不需要把 dist 提交到 Git——部署平台会在自己的环境里运行 npm install 和 npm run build。提交前检查 .gitignore 已覆盖 node_modules、dist、.astro 和 file_backups,然后 git status 确认这些目录没有出现在待提交列表中。

这个坑为什么常见

很多人第一次用 Git 时,习惯 git add . 然后直接提交,没有先检查哪些文件被忽略了。如果 .gitignore 不存在或不完整,node_modules(通常几百 MB)和 dist(构建输出)就会被一起提交。等到发现时,这些大文件已经进入了 Git 历史,即使后续删除,仍然可以通过 git log 找到。造物栈在任务包 AI 中新增了 .gitignore,就是为了避免这个问题。

它会造成什么后果

提交 node_modules 和 dist 的三个后果:第一,仓库体积暴涨——node_modules 目录可能包含数万个文件,让 clone 和 pull 变得很慢;第二,diff 混乱——每次 npm install 或 npm run build 后,Git 会显示几千个文件变更,真正重要的源码改动被淹没;第三,部署平台混淆——有些平台看到仓库里有 dist,可能跳过构建步骤直接使用旧产物,导致上线内容和本地不一致。

更稳的做法

更稳的做法:第一步,确认 .gitignore 已经包含 node_modules/、dist/、.astro/、*.log 和 file_backups/。第二步,每次 git add 之前先 git status,如果发现 node_modules 或 dist 出现在 untracked 或 modified 列表中,说明 .gitignore 没有生效。第三步,如果已经不小心提交了这些目录,用 git rm -r --cached node_modules dist 把它们从 Git 跟踪中移除,然后重新提交。

相关方法

相关模板

← 返回避坑笔记