我在 .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 rm --cached .env
(这将使.gitignore能够运行)的问题是,一旦提交并推送,每个人都会在下一个git pull
时丢失文件。
如果您需要本地
.env
设置(不应成为 Git 存储库的一部分),您可以:
#include
指令,这将允许您包含第二个文件 .env.local (您可以安全地添加到您的 .gitignore
).env.tpl
(模板文件),而忽略.env
本身(因此使用git rm --cached .env
,但使用git add.env.tpl
)内容过滤驱动程序背后的想法是基于
git checkout
模板文件和本地(并被忽略)git switch
值文件在.env
/.env.tpl
上自动生成.env.values
文件。您还可以使用以下命令跳过文件:
git update-index --skip-worktree .\.env