📜  git ignore .env 文件不起作用 - Javascript (1)

📅  最后修改于: 2023-12-03 15:00:55.838000             🧑  作者: Mango

Git Ignore .env 文件不起作用 - Javascript

在处理敏感信息或者配置文件的时候,我们一般会将这些信息保存在特定的文件中,例如.env文件。在开发过程中,我们需要将代码推送到Git仓库进行版本控制,通常情况下,我们会将.env文件加入到.gitignore文件当中,以防止敏感信息泄漏。但有时候,即使将.env文件加入到.gitignore文件当中,Git仍然会在push时将其排除在外。

原因

这是因为在文件已经被Git进行了跟踪之后,再将其加入到.gitignore文件当中并不会使其被忽略。因此,需要在将.env文件加入.gitignore文件前,将其从仓库中删除。

解决方案

以下是一些解决方案:

手动删除

手动删除.env文件,然后将其加入到.gitignore文件当中:

$ git rm --cached .env
$ echo .env >> .gitignore
$ git add .gitignore
$ git commit -m "ignore .env file"
使用git-update-index

可以使用git-update-index命令将文件从Git仓库中删除,这样Git仍然会追踪.gitignore文件中写的文件。

$ git update-index --assume-unchanged .env

为了再次跟踪该文件,可以使用--no-assume-unchanged选项来更新索引,然后提交更改。

$ git update-index --no-assume-unchanged .env
强制将文件加入.gitignore

如果以上两个方法都不起作用,可以使用以下命令来强制将文件加入.gitignore:

$ echo '.env' >> .gitignore
$ git rm --cached `git ls-files -i --exclude-from=.gitignore`
$ git add .
$ git commit -m "ignore .env file"

这会将.gitignore文件中的规则应用于当前仓库中未被跟踪的文件,即.env文件。

结论

在Git仓库中忽略敏感信息和配置文件,需要谨慎操作。在处理这类文件时,请务必记住在将其加入到.gitignore文件前从仓库中删除它们,以确保它们不会被Git跟踪。如果文件已经被Git跟踪,请使用以上方法解决问题。