Skills

GIT Push

把项目推送到 GitHub,三种模式自动判断:**首次推送**(大文件扫描 → 生成 .gitignore → git init → gh 建仓 →...

Install

npx skills add yunshu0909/yunshu_skillshub --skill git-push -g -a claude-code -y
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:基于扫描结果生成新文件。

Read the whole SKILL.md on GitHub

More in Git and review