如何忽略git中的.env文件?

问题描述 投票:0回答:2

我在 .env 文件中进行了更改,然后在终端中写入

git status
:

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   .env

我希望 .env 文件中的更改被 git 忽略,所以我在 .gitignore 中添加了这一行:

/.env

现在当我写

git status
时我得到结果:

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   .env
    modified:   .gitignore

我现在能做什么?为什么 gitignore 没有被忽略?

git gitignore
2个回答
6
投票

git rm --cached .env
(这将使.gitignore能够运行)的问题是,一旦提交并推送,每个人都会在下一个
git pull
时丢失文件。

如果您需要本地

.env
设置(不应成为 Git 存储库的一部分),您可以:

  • 检查您的 .env 是否带有某种
    #include
    指令,这将允许您包含第二个文件 .env.local (您可以安全地添加到您的
    .gitignore
  • 或设置合并内容驱动程序,仅版本
    .env.tpl
    (模板文件),而忽略
    .env
    本身(因此使用
    git rm --cached .env
    ,但使用git add
    .env.tpl

内容过滤驱动程序背后的想法是基于

git checkout
模板文件和本地(并被忽略)
git switch
值文件在
.env
/
.env.tpl
上自动生成
.env.values
文件。
请参阅“Github 私有存储库 - 管理不同环境的包”作为这种方法的示例。


0
投票

您还可以使用以下命令跳过文件:

git update-index --skip-worktree .\.env
© www.soinside.com 2019 - 2024. All rights reserved.