如何配置 Git 忽略 node_modules 和 .env 文件

文章导读
直接在项目根目录创建或编辑 .gitignore 文件,添加 node_modules/ 和 .env 规则,是防止敏感信息泄露和仓库膨胀的标准做法。
📋 目录
  1. 配置 .gitignore 规则
  2. 清理已缓存的误提交文件
  3. 验证忽略是否生效
  4. 常见坑与注意事项
A A

直接在项目根目录创建或编辑 .gitignore 文件,添加 node_modules/ 和 .env 规则,是防止敏感信息泄露和仓库膨胀的标准做法。

核心结论:所有 Node.js 项目都应在初始化阶段配置 .gitignore。若文件已被误提交,仅修改 .gitignore 无效,必须先清理 Git 缓存。

  • 适用场景:使用 npm/yarn 包管理及包含环境配置的前后端项目
  • 前置检查:确认根目录是否有 .gitignore 文件,运行 git status 检查是否有敏感文件
  • 验收标准:git status 不再显示无关文件,git check-ignore 验证规则匹配

配置 .gitignore 规则

在项目根目录(与 package.json 同级)创建或编辑 .gitignore 文件。注意规则区分大小写,末尾斜杠 / 表示忽略目录。

node_modules/
.env
.env.local
.env*.local
*.log
.DS_Store

清理已缓存的误提交文件

如果 node_modules 或 .env 之前已经被 git add 过,仅修改 .gitignore 不会生效。需要使用 git rm `--cached` 将其从索引中移除,但保留本地文件:

如何配置 Git 忽略 node_modules 和 .env 文件
git rm -r `--cached` node_modules
git rm `--cached` .env

执行完成后,提交更改将 .gitignore 的变更和索引清理记录到仓库:

git add .gitignore
git commit -m "chore: update gitignore and remove cached files"

验证忽略是否生效

使用 git status 查看工作区状态,确认 node_modules 和 .env 不再出现在变更列表中。也可使用 git check-ignore 命令检查特定文件是否被忽略:

如何配置 Git 忽略 node_modules 和 .env 文件
git check-ignore -v node_modules/
git check-ignore -v .env

如果输出匹配的规则行,说明忽略生效。

常见坑与注意事项

1. 忽略规则对已追踪文件无效:Git 不会忽略已经纳入版本控制的文件。必须先 git rm `--cached` 移除追踪,.gitignore 才会起作用。

2. 路径匹配细节:node_modules/ 末尾加斜杠表示只忽略目录;.env 不加斜杠可忽略所有同名文件。若只想忽略根目录的 .env,可写 /.env。

如何配置 Git 忽略 node_modules 和 .env 文件

3. 否定规则顺序:如果想忽略所有日志但保留特定日志,否定规则(!)必须写在忽略规则之后,且父目录不能被忽略。

更多规则语法可参考 Git 官方文档