Skip to content

Latest commit

 

History

History
227 lines (175 loc) · 5.27 KB

File metadata and controls

227 lines (175 loc) · 5.27 KB

开源准备清单

📋 清理前准备

  • 创建备份分支

    git branch backup-before-cleanup
  • 记录当前远程仓库信息

    git remote -v
  • 确认本地有所有分支和标签

    git fetch --all --tags

🔧 敏感信息清理

1. 运行清理脚本

.\cleanup_git_history.ps1

2. 验证清理结果

.\verify_cleanup.ps1

3. 手动检查项

检查配置文件

  • 确认 .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 - 更新日志(可选)

README.md 内容清单

  • 项目名称和简介
  • 功能特性列表
  • 系统要求(Python版本等)
  • 安装步骤
  • 配置说明(强调需要配置Token)
  • 使用示例
  • 项目结构说明
  • 贡献指南
  • 许可证信息

🔒 安全检查

Git历史检查

# 检查是否有.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 是否完整
  • 移除开发专用的依赖(如果有)
  • 添加必要的版本约束

🚀 推送到GitHub

1. 创建GitHub仓库

2. 添加远程仓库

# 添加GitHub远程仓库
git remote add github https://github.com/YOUR_USERNAME/YOUR_REPO.git

# 验证远程仓库
git remote -v

3. 推送代码

# 推送所有分支
git push github --all --force

# 推送所有标签
git push github --tags --force

4. 设置默认分支

# 如果需要将main设置为主分支
git branch -M main
git push github main --force

✅ 最终验证

在GitHub上检查

  • 访问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模板
  • 添加项目看板

⚠️ 注意事项

  1. 一旦推送到GitHub,敏感信息很难完全删除

    • 即使强制推送,其他人可能已经fork
    • GitHub会缓存一段时间
    • 建议立即修改已泄露的Token
  2. 清理历史会改变所有提交哈希

    • 其他协作者需要重新克隆
    • 所有未合并的PR会受影响
  3. 备份很重要

    • 清理前务必备份
    • 保留原始仓库访问权限
  4. Token安全

    • 如果历史上有过真实Token,立即在Tushare后台重置
    • 使用环境变量管理所有敏感配置

🆘 紧急处理

如果不小心泄露了Token:

  1. 立即重置Token

  2. 删除敏感提交

    # 使用git filter-repo删除特定文件
    git filter-repo --invert-paths --path .env --force
  3. 强制推送

    git push origin --all --force
    git push origin --tags --force
  4. 联系GitHub支持

    • 如果已经被爬取,联系GitHub删除缓存

📞 资源链接


最后更新: 2025-05-14 状态: 准备中