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

pea*_*ove 2 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
Run Code Online (Sandbox Code Playgroud)

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

/.env
Run Code Online (Sandbox Code Playgroud)

现在当我写的时候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
Run Code Online (Sandbox Code Playgroud)

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

Von*_*onC 5

a (这将使 .gitignore 能够运行)的问题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文件。 请参阅“ Github private repo - 管理不同环境的包”作为这种方法的示例。.env.env.tpl.env.values