1. 忽略本地值并保留示例
把下面的规则放进根目录 .gitignore。它们排除根目录 .env 和以 .env. 开头的文件,再重新纳入 .env.example;不覆盖 service.env 等其他命名或子目录中的文件。
提交前检查 .env.example:示例文件名并不能保证内容可公开。使用占位值,并说明项目需要哪些变量。
/.env
/.env.*
!/.env.example 2. 验证三种情况
准备未跟踪的 .env、.env.local 和 .env.example,检查各自匹配的规则:
git check-ignore -v -- .env .env.local .env.example!/.env.example 表示重新纳入示例。状态输出应列出示例文件,省略两个本地值文件。被排除的父目录或后续规则仍可能改变结果。
git status --short --untracked-files=all -- .env .env.local .env.example 3. 处理此前已跟踪的值文件
检查 Git 是否已经跟踪这些本地值文件:
git ls-files -- .env .env.local若输出了路径,请按已跟踪文件文章处理,并与协作者协调。添加 .gitignore 不会删除已有提交。如果凭据曾泄露,先撤销或轮换,再参考 GitHub 的敏感数据处理说明;只移除当前文件不会清除历史。
准确行为与更多细节请参阅官方说明: Git 官方文档 · Git 常见问题官方文档 · GitHub 敏感数据处理说明