zhulink logo
自动夜间模式 日间模式 夜间模式
侧栏
0

如何从 GitHub 永久删除泄露的 .env 文件

意外富翁的头像
|
|
|

111 # .env 文件是什么? .env 文件,全称 environment file,中文翻译为环境配置文件,是一种用于存储应用环境变量的文本文件。它通常位于项目的根目录,不随代码一同提交到版本控制系统(如 Git)中。 # .env 文件的作用 - 隔离环境配置: 将不同的环境(开发、测试、生产)的配置信息单独存储,避免硬编码在代码中。 - 提高安全性: 敏感信息(如数据库密码、API 密钥等)不会暴露在公开的代码仓库中。 - 方便配置管理: 可以快速切换不同环境,只需修改 .env 文件即可。 # 为什么不把 .env 文件提交到版本控制系统? - 安全性: 避免敏感信息泄露。 - 避免冲突: 不同开发者可能会有不同的配置,提交 .env 文件容易导致冲突。 # 如何永久从 GitHub 上删除泄露的 .env 文件 ## 1、删除 .env 文件并提交 首先,从你的仓库中删除 .env 文件并提交更改: ``` git rm --cached .env echo ".env" >> .gitignore git add .gitignore git commit -m "Remove .env file and add to .gitignore" ``` ## 2、使用 filter-branch 从历史记录中删除 .env 文件 使用 Git 的 filter-branch 从整个历史记录中删除 .env 文件: ``` git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch .env' --prune-empty --tag-name-filter cat -- --all ``` ## 3、强制推送更改 运行 filter-branch 后,你需要强制推送更改到远程仓库: ``` git push --force --all git push --force --tags ``` ## 4、清理本地仓库 最后,清理本地仓库以删除旧的引用: ``` rm -rf .git/refs/original/ git reflog expire --expire=now --all git gc --prune=now --aggressive ``` ## 5、撤销任何泄露的凭证 和任何方法一样,如果你的 .env 文件包含敏感信息,立即撤销并重新生成这些凭证,以确保安全。

▲ 赞同(0)    ★ 收藏(0)