GitHub 一键发布助手(专业版)
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_b710a0b0/github-upload-pro 技能到 AI 助手中。
技能介绍
解决什么问题
手工把项目推上 GitHub,流程本身不复杂,但容易在细节上翻车:.env 里的数据库密码被提交、node_modules/ 和 __pycache__/ 混进首次 commit、新仓库缺少 .gitignore 和 LICENSE、git push 卡在认证弹窗、CRLF 警告误以为报错、老仓库还在用 master。这个技能把「开源准备 → 安全检查 → 提交 → 推送」串成一条可复核的流水线,每一步都有明确的输入和输出,减少手工操作带来的遗漏。
核心能力与关键步骤
- 前置检查:先确认当前目录是否已有 git 仓库,再跑
gh auth status检查 GitHub CLI 是否登录;未登录会提示执行gh auth login,或走 Windows Credential Manager 的 git push 交互认证。同时向用户确认仓库名、是否私有、是否需要 LICENSE 和初始 tag。 - 安全检查(强制):先跑
git status看清将要提交的文件,扫描.env、*.pem、*.key、id_rsa*、credentials.json、__pycache__/、node_modules/、dist/、build/、.workbuddy/memory/、.idea/、.vscode/等敏感或无意义内容,发现即告警并要求用户确认;.gitignore缺失时按语言模板(Python / Node / Go / Rust)补齐。 - 开源标配补齐:按需生成
.gitignore、LICENSE(MIT 默认,可选 Apache-2.0 / GPL-3.0)、README.md(含安装、使用、配置示例与 badges)、pyproject.toml或package.json,已存在的文件不覆盖。 - 提交与推送:完成 Git 初始化和首次 commit;若
gh已登录,可用gh repo create直接建仓并推送,无需打开浏览器。 - 历史清理与公开措辞:如果敏感信息已经进入历史 commit,指引用户先重置相关密码,再用
git filter-repo重写历史,并提醒所有协作者重新 clone;发布用的 commit message 和 tag 统一使用中性表述,避免暴露敏感信息处理意图。
适用边界与注意点
- 重写历史后旧 commit hash 失效,已推送的仓库需要所有协作者重新 clone,这是一个破坏性操作,不适合有外部贡献者的活跃仓库。
- 已发布到 PyPI / npm 的版本无法从公共索引删除,只能通过新版本替代。
- 如果仓库曾被公开抓取,历史里的敏感信息可能已被缓存,改密码永远是第一步,清理历史只是补充手段。
- CRLF 警告是 Git for Windows 的默认行为,不需要为了消除警告调整
core.autocrlf。 - 含
!、$等字符的配置值不要直接拼进命令行字符串,改用.env文件或单引号包裹。
使用场景
- 独立开发者把刚写好的Python工具推上GitHub,第一次开源,不清楚建仓、gitignore和提交流程
- 团队要把内部脚本整理后开源,担心.env和凭据被误提交,推送前需要完整安全扫描
- 项目已推GitHub,后来发现密码进了历史commit,需重置凭据并用git filter-repo清理
- Python项目推完GitHub后想发布PyPI,需按规范生成pyproject.toml和版本tag
适合人员
- 独立开发者:个人写了Python或Node小工具,想第一次推上GitHub开源,但不熟悉建仓、配置和提交全流程
- 仓库维护者:已有GitHub仓库被发现敏感信息进入历史commit,需要安全清理并发布中性版本的更新
- 团队技术负责人:打算把内部脚本或工具库开源,担心误提交凭据,希望推送前做完整安全检查