如何在GitHub上隐藏discord.py项目的Discord token?
核心原因
.gitignore仅对从未被Git纳入跟踪范围的文件生效。如果你的.env文件此前曾经执行过git add、git commit操作,哪怕后续补充了.gitignore规则,Git依然会持续跟踪该文件的变更,同时历史提交记录里留存的明文token依旧会被Discord的公开仓库扫描程序捕获,触发自动重置。
完整解决步骤
- 先将.env从Git跟踪列表中移除(不会删除本地的.env文件),执行命令:
git rm --cached .env
执行完成后提交本次变更,后续.gitignore就会对该文件生效。 - 彻底清理仓库所有历史提交中的token记录,这一步不可跳过,否则旧提交里的token依然会被扫描到:
先安装官方推荐的Git历史清理工具:pip install git-filter-repo
如果你只是要删除所有历史里的.env文件,执行:git filter-repo --invert-paths --path .env
如果你的token此前还写在其他代码文件中过,执行以下命令将所有历史里的旧token替换为空:git filter-repo --replace-text <(echo 'replace:你的旧Discord token==>') - 校验.gitignore规则,确认文件中明确包含
.env这一行,如果你的.env存放在项目子目录下,可以写**/.env匹配所有层级的.env文件,避免规则失效。 - 本地验证规则是否生效:修改.env内的任意内容后执行
git status,如果.env没有出现在待提交变更列表中,说明配置正常。 - 所有操作完成后,前往Discord开发者后台生成全新的token,旧token已经存在泄露风险,无论是否清理都不要再使用。
额外注意
如果你的仓库已经公开且被其他用户Fork,即使你清理了自己仓库的历史记录,Fork副本中依然可能留存旧token,这种情况下必须强制重置token,不要抱有侥幸心理。
内容的提问来源于stack exchange,提问作者Alkerg
相关产品推荐
相关产品推荐

