git ignore,env文件不工作

gev0vcfq  于 2023-04-28  发布在  Git
关注(0)|答案(7)|浏览(162)

我有一个Laravel项目。在根目录中有这4个文件:
.env .env.example .env.local. env.分级
我有一个.gitignore文件,我将这4个文件列在。gitignore,一个接一个,像这样

.env
.env.example
.env.local
.env.staging

我的git仓库不包含。env或. env.例如,它包含。环境本地和env.staging.我已经尝试了所有我能想到的方法,但它一直在用Gitlab同步这两个文件。
你知道是什么引起的吗?
谢谢你的帮助!

aelbi1ox

aelbi1ox1#

使用git rm

如果您已经添加了要跟踪的文件,则需要将其从跟踪中删除:

git rm env.local --cached
git rm env.staging --cached
git commit -m "Stopped tracking env.local, and env.staging"

现在您应该能够克隆分支而不需要跟踪这些文件。

**注意:**请记住,这些文件的内容在您的历史记录中,如果它们确实包含敏感数据,那么您需要在将其发布之前从历史记录中completely remove

hs1ihplo

hs1ihplo2#

只需运行此命令。

git rm .env --cached
git commit -m "Stopped tracking .env File"

在Laravel有。env文件包括用于连接数据库。因此,你必须删除。从缓存的env文件。

rkttyhzu

rkttyhzu3#

您可以从缓存中删除该文件。
try below命令

git rm .env --cached
git commit -m "Any message"
wb1gzix0

wb1gzix04#

这是因为你的.env文件已经被推送到了git。
你应该先从git中删除它,然后推送你的更改。

rm -f .env
git add .
git commit -m "remove .env file from git"
git push
cedebl8k

cedebl8k5#

最好的解决方案是将.env文件放在它自己的文件夹中,然后将该文件夹添加到.gitignore文件中。例如:

  • 创建一个名为“vars”的文件夹
  • .env文件移动到该文件夹中
  • .gitignore中添加vars文件夹
*inside .gitignore*

/node_modules
/vars
  • 确保在使用enviroment variables的主文件中添加dotenv.config()的路径
dotenv.config({path: "./vars/.env"}

然后,您可以像以前一样继续引用环境变量

hgncfbus

hgncfbus6#

不需要使用clear cache命令,有更简单的解决方案也可以在GUI中实现。
如果你完全确定,你的.gitignore规则是正确的:
1.暂存未被忽略的文件(仅暂存不提交)
1.撤消文件
1.该文件不应再出现在更改中

omqzjyyz

omqzjyyz7#

如果你认为gitignore虽然添加了文件名,但并没有像预期的那样工作,那么请确保你首先从git中删除它。

相关问题