git在服务器上无法推送.env文件

9
在我的Laravel应用中的本地服务器上,有一个.env文件。
为了将更改推送到服务器,我使用以下命令:
git add . git commit -m "something" git push heroku master 但是,当我在克隆的应用程序中使用heroku git:clone -a myapp时,没有.env文件,只有.env.development文件。
我做错了什么吗?
4个回答

18

如果有 .gitignore 文件,请检查它。如果你的 git 仓库是自动设置的或从另一个项目导入的,则很可能被默认忽略。

如果文件存在,请将其删除,以便在下次提交时包括你的 .env 文件。


请将以下程序相关内容从英语翻译成中文。只返回翻译后的文本即可。非常感谢:) - Jakub Kohout
1
为什么没有人推送 .env 文件,而只是推送 .env.example 文件呢? - AmerllicA
2
@AmerllicA 这是因为 .env 文件通常包含敏感或本地化信息。对于敏感信息,如 API 密钥、身份验证密钥等,您不希望它们坐在版本控制中,因为它们是公开可访问的。如果存储库是私有的,这可能并不是一个很大的问题,但如果它在 GitHub 等公共平台上,则任何人都可以找到并使用该信息。对于本地化信息,每个环境都不同,需要进行设置,因此将 .env.example 复制或移动到 .env 要比手动编辑更少出错。 - James
我该如何在git中忽略.env文件,而heroku不会忽略它? - SkySibe

4
默认情况下,Laravel 忽略 .env 文件。这是有意为之的,因为不同环境下应该有不同的 env 文件。这样可以防止您将凭据(例如数据库凭据)提交到版本控制中。建议您继续遵循这种惯例,并考虑使用 Heroku 配置变量:https://devcenter.heroku.com/articles/config-vars

1
在根目录下打开文件文本.gitignore,Git会跳过.gitignore中列出的文件和文件夹。您只需删除所有文本,然后查看Git状态即可。

0

请确保您的环境文件.env中"="周围没有空格。现在尝试推送它。

运行heroku config:push --overwrite,因为默认情况下它不会覆盖现有变量。

如果问题仍然存在,请尝试使用heroku-config:它提供了一种将Heroku环境推送/拉取到本地使用的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接