NextJS环境变量导致git push报错,如何解决?
GitHub Push Protection报错GH013的解决(Next.js场景)
问题描述
在Next.js 14.2.5中测试环境变量:
- 本地创建
.env.local文件,内容为HI=poop - 代码调用该变量后本地运行正常,控制台输出
poop - 执行
git push时触发以下错误:
remote: error: GH013: Repository rule violations found for refs/heads/master. remote: remote: - GITHUB PUSH PROTECTION remote: ————————————————————————————————————————— remote: Resolve the following violations before pushing again remote: remote: - Push cannot contain secrets
已在.gitignore中配置.env*.local,排除了本地环境变量文件的提交,因此最初困惑为何会触发秘密检测。
根因分析
GitHub的Push Protection机制会扫描提交历史中的所有内容,不仅是当前提交的文件。排查后发现,历史提交中存在硬编码到代码里的NEXT_PUBLIC开头环境变量,这些内容被识别为敏感秘密。
解决步骤
- 回退到包含硬编码环境变量的提交之前的版本
- 重构代码,确保所有
NEXT_PUBLIC变量通过.env系列文件管理,不再硬编码到代码中 - 创建新的提交并推送,此时仓库规则校验通过
内容的提问来源于stack exchange,提问作者da coconut
相关产品推荐
相关产品推荐

