
GIT Push
把项目推送到 GitHub,三种模式自动判断:**首次推送**(大文件扫描 → 生成 .gitignore → git init → gh 建仓 →...
Install
npx skills add yunshu0909/yunshu_skillshub --skill git-push -g -a claude-code -y- Repository
- yunshu0909/yunshu_skillshub788
- Category
- Git and review
- Updated
- 24d ago
- License
- MIT
- Context cost
- Mediumabout 1,578 tokens
- Runs scripts
- No, instructions only
What it does
把项目推送到 GitHub,三种模式自动判断:**首次推送**(大文件扫描 → 生成 .gitignore → git init → gh 建仓 → 推送)、**日常更新**(commit + push)、**版本发布**(打 tag + 建 Release,可附下载文件)。核心原则是安全第一:推之前必扫大文件和敏感文件,宁可多问一句也不把不该推的东西推上去。当用户说"推到GitHub""推送到GitHub""git push""上传到GitHub""提交并推送""发版本""打release""打tag""/git-push"时触发。不适用于:规划哪些功能进哪个版本号(用 issue-pool, , 本 skill 只负责把已经定好的版本号打成 tag)、复杂 git 操作如 rebase/cherry-pick/解冲突/改历史/回滚(直接用 git 命令,本 skill 不覆盖)、代码写完前的自测和验收。
一键推送 GitHub
功能说明
把当前项目一键推送到 GitHub,覆盖完整生命周期:
- 首次推送, 新项目从零到 GitHub
- 日常更新, 改了文件,推一下(commit + push)
- 版本发布, 打 tag + 创建 Release,可附带下载文件
核心原则:安全第一。宁可多问一句,不能把不该推的东西推上去。
工作流程
第0步:环境检查 + 模式判断
依次检查前置条件,任一不满足就终止并给出指引:
1. git 是否安装
- ❌ → 提示:
brew install git,终止 - ✅ → 继续
2. gh CLI 是否安装
- ❌ → 提示:
brew install gh,终止 - ✅ → 继续
3. gh 是否已登录 GitHub
- 执行
gh auth status检查 - ❌ 未登录 → 提示:
gh auth login,终止 - ✅ 已登录 → 记录账号名,告诉用户"当前登录账号:[xxx]",继续
4. git 用户信息是否配置
- 执行
git config user.name和git config user.email检查 - ❌ 未配置 → 提示用户设置:
终止git config --global user.name "你的名字" git config --global user.email "你的邮箱" - ✅ 已配置 → 继续
5. 当前目录是否已是 git 仓库 → 决定走哪条路
不是 git 仓库 → 【首次推送】从第1步开始
是 git 仓库,无 remote → "本地有 git 但没关联远程"
→ 先执行第1步的大文件扫描(确保安全)
→ 再跳到第2步关联远程
是 git 仓库,有 remote → 【已有仓库】进入模式选择:
├── "推日常更新" → 跳到第3B步(日常更新)
├── "发新版本" → 检查是否有未提交的变更
│ ├── 有变更 → 先走第3B步,再走第4步
│ └── 无变更 → 直接跳到第4步(只打 tag + Release)
└── "重新来"
→ ⚠️ 警告:"这将删除所有 Git 历史记录(包括所有提交、分支、tag),不可恢复。"
→ 用户二次确认后删除 .git,从第1步开始
第1步:项目扫描 + .gitignore 生成
⚠️ 铁律:.gitignore 必须在第一次
git add之前就位。绝不能先提交再排除, , Git 历史里的大文件删不干净,会导致仓库臃肿、推送失败。
1.1 扫描目录大小
用 du -sh 扫描所有顶级目录和文件,按大小排序。
大文件分级处理:
| 大小 | 处理方式 |
|---|---|
| >10MB | 列出,逐个问用户"要推吗?" |
| >50MB | 额外警告"较大,推送会比较慢" |
| 单文件 >100MB | 必须排除,GitHub 硬限制,推不上去 |
展示格式(示例):
扫描发现以下内容超过 10MB:
1. 109MB slides/ (PPT + 大图片)
2. 12MB assets/ (视频文件)
⚠️ 其中 slides/ 超过 50MB,推送会很慢。
❌ 其中 recording.mp4 (150MB) 超过 GitHub 100MB 单文件限制,必须排除。
要排除哪些?(输入序号,或 "全部排除" / "全部保留")
1.2 敏感内容扫描(仅公开仓库)
如果用户选了公开仓库,额外扫描:
.env/.env.*, 环境变量/密钥*secret*/*credential*/*token*, 密钥文件*.pem/*.key, 证书文件memory//MEMORY.md, AI 工具记忆文件- 任何看起来像私人内容的文件
列出建议排除项,让用户逐项确认。
1.3 生成或更新 .gitignore
如果不存在 .gitignore:基于扫描结果生成新文件。

