-
创建备份分支
git branch backup-before-cleanup
-
记录当前远程仓库信息
git remote -v
-
确认本地有所有分支和标签
git fetch --all --tags
.\cleanup_git_history.ps1.\verify_cleanup.ps1- 确认
.env.example中只有示例值(your_token_here) - 确认
src/core/config.py中没有硬编码Token - 检查所有
config/*.py文件
# 搜索可能的Token
git log -p --all | Select-String -Pattern "tsp_|ts_[a-zA-Z0-9]{20,}"
# 搜索API Key
git log -p --all | Select-String -Pattern "api_key|secret|password"- 检查所有
.md文件中是否有真实Token - 检查示例代码中的配置
- README.md - 项目介绍、安装说明、使用方法
- LICENSE - 开源许可证(推荐 MIT 或 Apache 2.0)
- .gitignore - 确保已排除敏感文件
- CONTRIBUTING.md - 贡献指南(可选)
- CHANGELOG.md - 更新日志(可选)
- 项目名称和简介
- 功能特性列表
- 系统要求(Python版本等)
- 安装步骤
- 配置说明(强调需要配置Token)
- 使用示例
- 项目结构说明
- 贡献指南
- 许可证信息
# 检查是否有.env文件在历史中
git log --all --name-only | Select-String "\.env$"
# 检查大文件
git rev-list --objects --all | git cat-file --batch-check | Sort-Object -Property 3 -Descending | Select-Object -First 20
# 检查敏感词
git log -p --all | Select-String -Pattern "TUSHARE_TOKEN=.{20,}"- 确认
.env在.gitignore中 - 确认
cache/目录在.gitignore中 - 确认
logs/目录在.gitignore中 - 确认
.venv/在.gitignore中 - 确认
__pycache__/在.gitignore中
- 检查
requirements.txt是否完整 - 移除开发专用的依赖(如果有)
- 添加必要的版本约束
- 访问 https://github.com/new
- 创建新仓库(不要初始化README)
- 复制仓库URL
# 添加GitHub远程仓库
git remote add github https://github.com/YOUR_USERNAME/YOUR_REPO.git
# 验证远程仓库
git remote -v# 推送所有分支
git push github --all --force
# 推送所有标签
git push github --tags --force# 如果需要将main设置为主分支
git branch -M main
git push github main --force- 访问GitHub仓库页面
- 检查README渲染是否正常
- 浏览提交历史,确认无敏感信息
- 检查文件列表,确认无.env等敏感文件
- 查看Tags,确认已推送
# 在新目录克隆验证
cd ..
git clone https://github.com/YOUR_USERNAME/YOUR_REPO.git test-clone
cd test-clone
# 检查是否有敏感文件
ls -la | Select-String "\.env"
git log --oneline | Select-String "env"
# 清理测试目录
cd ..
Remove-Item -Recurse -Force test-clone- 添加API文档
- 添加开发指南
- 添加常见问题FAQ
- 添加视频教程(可选)
- 配置GitHub Actions CI/CD
- 添加自动化测试
- 配置代码质量检查(CodeQL等)
- 添加Issue模板和PR模板
- 添加Discussions功能
- 配置Issue模板
- 配置Pull Request模板
- 添加项目看板
-
一旦推送到GitHub,敏感信息很难完全删除
- 即使强制推送,其他人可能已经fork
- GitHub会缓存一段时间
- 建议立即修改已泄露的Token
-
清理历史会改变所有提交哈希
- 其他协作者需要重新克隆
- 所有未合并的PR会受影响
-
备份很重要
- 清理前务必备份
- 保留原始仓库访问权限
-
Token安全
- 如果历史上有过真实Token,立即在Tushare后台重置
- 使用环境变量管理所有敏感配置
如果不小心泄露了Token:
-
立即重置Token
- 访问 https://tushare.pro/user/token
- 生成新的Token
-
删除敏感提交
# 使用git filter-repo删除特定文件 git filter-repo --invert-paths --path .env --force -
强制推送
git push origin --all --force git push origin --tags --force
-
联系GitHub支持
- 如果已经被爬取,联系GitHub删除缓存
最后更新: 2025-05-14 状态: 准备中