哪些文件不可推送到GitHub公开仓库?各平台目录安全性咨询
公开GitHub仓库不宜推送的文件及平台目录安全指南
一、绝对不能推的文件类型
- 敏感配置类文件:任何包含API密钥、数据库密码、OAuth令牌、支付密钥的文件都绝对不能推,比如
.env、Android的local.properties、iOS带敏感值的Info.plist、硬编码密钥的config.json。这些文件一旦公开,你的账号、服务很可能被恶意滥用。 - 本地缓存与日志文件:像Android的
.gradle、iOS的DerivedData、node_modules、__pycache__这类本地缓存,还有*.log日志文件,不仅占空间没复用价值,还可能泄露本地路径、调试信息等隐私内容。 - 编译产物与二进制文件:Android的
apk/aab、iOS的ipa、Windows的.exe/.dll、Linux的可执行文件都没必要推——别人可以通过源码重新编译,而且这些文件体积大,会拖累仓库加载速度。 - 个人隐私文件:本地的文档、照片、IDE的个人专属配置(比如
.idea里的用户特定设置、VSCode的.vscode/settings.json带个人路径的),别不小心混进仓库里。 - 版权受限文件:付费字体、付费素材、受版权保护的内容绝对不能公开推送,否则会引发法律纠纷。
二、各平台目录的推送安全性
Android相关目录
- 可放心推送:
app/(核心源码、通用build.gradle,注意别硬编码敏感值)、gradle/(通用构建脚本)、settings.gradle、项目说明文档(比如README.md)。 - 禁止推送:
.gradle/(本地缓存)、local.properties(含SDK路径、密钥)、app/build/(编译产物)、所有*.apk/*.aab文件。
iOS相关目录
- 可放心推送:
YourProject.xcodeproj/(项目配置,避开本地签名相关的私人配置)、YourProject/(源码文件)、Podfile/Podfile.lock(CocoaPods依赖配置,确保无敏感依赖)、项目说明文档。 - 禁止推送:
DerivedData/(Xcode本地缓存)、build/(编译产物)、*.ipa文件,还有带敏感配置的Info.plist——建议把敏感值改成环境变量,别硬编码在文件里。
Linux相关目录
- 可放心推送:源码目录(比如
src/)、Makefile/CMakeLists.txt构建脚本、项目说明文档、.gitignore。 - 禁止推送:
build/(编译后的二进制文件)、.local/(用户本地缓存)、*.log运行日志,还有系统级的敏感配置文件(比如本地/etc/下的自定义配置)。
Windows相关目录
- 可放心推送:
*.sln/*.csproj项目配置文件(确保无硬编码敏感值)、源码目录、项目说明文档。 - 禁止推送:
bin//obj/(编译产物)、*.exe/*.dll二进制文件、.vs/(VS本地缓存目录)、AppData相关的本地配置文件。
三、通用安全建议
- 一定要用
.gitignore文件,GitHub上有各平台的现成模板,直接套用就能自动过滤不该推的文件。 - 推送前务必检查所有配置文件,把硬编码的敏感信息换成环境变量或者加密配置。
- 如果不小心推了敏感文件,立刻用
git filter-repo工具清除仓库历史中的相关记录,同时马上重置泄露的密钥/令牌,避免损失。
内容的提问来源于stack exchange,提问作者shravan2006
相关产品推荐
相关产品推荐

