You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

移除GitHub仓库.env后如何为Heroku配置环境变量

可行方案

可以把敏感凭证从 Git 仓库中移除,同时通过 Heroku 的 Config Vars 注入环境变量。Heroku 部署时不需要仓库里存在 .env 文件。

1. 停止跟踪 .env

先确认 .gitignore 中包含:

.env

如果 .env 已经被 Git 跟踪,需要从索引中移除,但保留本地文件:

git rm --cached .env
git add .gitignore
git commit -m "Remove .env from tracked files"
git push origin main

这样后续提交中不会再包含 .env。

2. 清理已经泄露的历史

如果 .env 曾经被提交到公开仓库,仅仅删除当前文件是不够的,历史提交里仍然可以找到凭证。应当:

  • 立即作废并重新生成所有 API Key、私有令牌、数据库密码等敏感信息
  • 清理 Git 历史中的 .env,或者直接新建一个干净仓库
  • 在 Heroku 中更新为新生成的凭证

3. 在 Heroku 中配置环境变量

使用 Heroku CLI 设置:

heroku config:set API_KEY=你的新密钥 PRIVATE_TOKEN=你的新令牌 -a 你的应用名

查看是否配置成功:

heroku config -a 你的应用名

如果值包含空格或特殊字符,用引号包裹:

heroku config:set SOME_SECRET="包含特殊字符的值" -a 你的应用名

也可以在 Heroku 面板中进入应用设置,找到 Config Vars,逐项添加名称和值。

4. 代码中读取环境变量

例如 Node.js 中直接读取:

const apiKey = process.env.API_KEY;
const privateToken = process.env.PRIVATE_TOKEN;

本地开发时仍然可以使用 .env,并通过 dotenv 等工具加载,但该文件应只存在于本地,不能提交到 GitHub。

可以提交一个不含真实值的示例文件,例如 .env.example:

API_KEY=
PRIVATE_TOKEN=

这样其他人知道需要配置哪些变量,但看不到任何敏感信息。

5. 正常部署

完成上述操作后,把代码推送到公开的 GitHub 仓库,再通过 Heroku 连接部署即可。Heroku 会自动使用 Config Vars 中的环境变量,应用逻辑不需要因为移除 .env 而改变。

内容的提问来源于 stack exchange,提问作者 Anvay Mishra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 06:54:03