Reputation: 6471
I made changes in my .env file and wrote after that in terminal 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
I would like that the changes in the .env file be igonored by git so I added this line in .gitignore:
/.env
Now when I write git status
I get the result:
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
What can I do now? Why is gitignore not ignored?
Upvotes: 2
Views: 5523
Reputation: 1324268
The problem with a git rm --cached .env
(which would enable to .gitignore to operate) is that, once committed and pushed, everybody lose the file on their next git pull
.
If you need to have local .env
settings (that should not be part of your Git repository), you can either:
#include
directive, which would allow you to include a second file .env.local (that you can add safely to your .gitignore
).env.tpl
(a template file), while ignoring .env
itself (so using the git rm --cached .env
, but with a git add .env.tpl
)The idea behind a content filter driver is to generate automatically on git checkout
/git switch
the .env
file, based on the .env.tpl
template file and a local (and ignored) .env.values
value file.
See "Github private repo - manage packages for different environment" as an example of such an approach.
Upvotes: 7