Skip to content
cccskills
FreePublished on GitHub

git-push

把项目推送到 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 不覆盖)、代码写完前的自测和验收。

The English summary is being prepared. Showing the original description.

Works withGitHub
See how to install

Files included (1)

  • SKILL.md12.2 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

一键推送 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:基于扫描结果生成新文件。

如果已存在 .gitignore:读取现有内容,将新增排除项合并进去,展示差异让用户确认。不覆盖用户已有的规则。

基础模板:

# macOS
.DS_Store
.AppleDouble
.LSOverride
._*

# Editor
*.swp
*.swo
*~
.vscode/
.idea/

# [以下根据扫描结果动态生成]
# 大文件(用户确认排除)
[路径1]
[路径2]

# 敏感内容(仅公开仓库时)
[路径3]

展示给用户确认后写入文件。


第2步:用户决策

1. 仓库名(默认:当前目录名)

2. 描述(一句话,可留空)

3. 公开 / 私有

  • 公开 → 二次确认:"公开仓库所有人可见,确认 .gitignore 已排除敏感内容?"
    • 不确认 → 回到第1.2步(敏感内容扫描)重新审查,完成后回到本步骤继续

4. 检查同名仓库

  • 执行 gh repo view [账号]/[仓库名] 检查
  • ❌ 不存在 → 继续
  • ✅ 已存在 → 告诉用户,问:
    • "换个名字" → 重新输入
    • "用这个已有仓库" → 跳过创建,直接关联 remote(记录仓库 URL 供第3步使用)
    • "删掉重建" → 需用户二次确认

第3步:推送

3A. 首次推送(新项目)

按以下顺序严格执行:

1. git init + git branch -m main
2. git add -A
3. git commit -m "init: 初始化 [仓库名]"
4. 创建远程仓库(如果第2步中仓库不存在):
   gh repo create [仓库名] --private/--public --description "[描述]" --source=. --remote=origin
   (如果第2步中用户选了"用已有仓库",跳过创建,直接:git remote add origin [已有仓库URL])
5. git push -u origin main

3B. 日常更新(已有仓库)

1. 扫描变更:git status 查看改了什么
2. 检查新增大文件:
   - 新增文件中有 >10MB 的 → 问用户确认
   - 新增文件中有单文件 >100MB → 必须排除,加入 .gitignore
   - 如果修改了 .gitignore,确保 .gitignore 本身也在后续的 git add 范围内
3. git add -A
4. git commit -m "[根据变更内容自动生成提交信息]"
   - 提交信息规则:简洁明了,一句话概括主要变更
   - 示例:"update: 新增用户模块 + 修复登录 bug"
5. git push

推送失败处理

错误原因处理
rejected (fetch first) 或 non-fast-forward远程有本地没有的提交默认执行 git pull --rebase 后重试
仍然失败 / 远程有冲突历史不兼容问用户"是否强制覆盖远程?" ⚠️ 告知:"这将覆盖远程所有内容,仅在确认远程内容可以丢弃时使用"→ git push --force
超时/卡住网络或仓库太大检查仓库大小,建议排除大文件后重试
认证失败token 过期提示 gh auth login
file exceeds 100MB单文件超限提示具体文件名,加入 .gitignore,重新提交推送
git add 或 git commit 失败文件异常/配置缺失显示错误信息,引导用户排查

第4步:可选 — 版本发布(Release)

触发时机

  • 首次推送后,主动问一次"需要打版本吗?"
  • 日常更新后,不主动问(避免打扰)
  • 用户主动说"发版本"、"打 release"、"打 tag"

流程

1. 确定版本号

读取当前已有的 tag(git tag --sort=-v:refname | head -5)

├── 没有任何 tag → 建议 v0.1.0
└── 已有 tag → 显示最近的版本,建议下一个(默认 minor +1)
    - v0.1.0 → 建议 v0.2.0
    - v1.2.3 → 建议 v1.3.0
    - 用户可自定义输入任意版本号

版本号说明(供用户参考):
- v0.1.0 → v0.2.0  小更新(加了功能、改了内容)
- v0.2.0 → v1.0.0  大里程碑(首次正式发布、重大重构)
- v1.0.0 → v1.0.1  修修补补(修了个 bug)

2. Release 说明

  • 自动读取自上个 tag 以来的 commit 记录(git log [上个tag]..HEAD --oneline)
  • 生成变更摘要,让用户确认或修改
  • 如果是第一个版本(无历史 tag),用所有 commit 生成摘要

3. 是否附带下载文件

需要附带可下载文件吗?(如 App 安装包、工具压缩包等)

├── 不需要 → 只打 tag + 创建 Release 页面
└── 需要 → 用户提供文件路径
    └── 检查文件是否存在 → 不存在则提示重新输入

4. 执行

git tag [version]
git push origin [version]
gh release create [version] --title "[仓库名] [version]" --notes "[Release 说明]"
# 如果有附件:
gh release upload [version] [文件路径]

Release 失败处理:

  • tag 已存在 → 提示用户"这个版本号已被使用",让用户换一个
  • 附件文件不存在 → 提示重新输入路径
  • 其他错误 → 显示错误信息

完成输出

✅ 推送完成!

- 仓库:[URL]
- 可见性:私有 / 公开
- 文件数:[N] 个
- 仓库大小:[X]
- 排除项:[列出被 .gitignore 排除的内容]
- Release:[版本号 + URL] / 未创建

核心原则

1. 扫描先于一切

.gitignore 在第一次 git add 之前就位。大文件一旦进入 Git 历史,即使后来删除,仓库体积也不会缩小,会导致推送失败或极慢。已有 git 但未关联远程的项目,也要先扫描再推送。

2. 大文件主动拦截

10MB 以上主动问用户。50MB 以上警告慢,100MB 单文件是 GitHub 硬限制必须排除。日常更新时也要检查新增文件大小。

3. 公开仓库双重检查

公开仓库额外扫描敏感内容(密钥、AI 记忆文件、私人文档),并在推送前二次确认。

4. 不破坏已有内容

如果项目已有 .git 或 .gitignore,默认不覆盖,先问用户。删除 .git 等破坏性操作必须明确警告后果并二次确认。

5. 每一步可中断

用户随时可以说"停"或"回到上一步"。不要一口气跑完不给用户反应的机会。

6. 日常更新要轻

日常更新不问 Release、不问仓库名、不重新扫描全项目。只检查新增大文件,commit + push,快进快出。


使用示例

场景1:新项目首次推送

用户:帮我推到 GitHub

Skill:
→ 检查环境:git ✅ gh ✅ 已登录 ✅ git 用户已配置 ✅ 不是 git 仓库
→ 扫描项目...发现超过 10MB 的内容:
  - 85MB slides/ → 用户确认排除
  - 15MB images/ → 用户确认保留
→ 生成 .gitignore,用户确认
→ 仓库名:my-project,私有
→ 初始化 + 推送成功
→ "需要打 Release 吗?" → 跳过
→ ✅ 完成

场景2:日常更新

用户:推一下

Skill:
→ 检测到已关联远程仓库
→ 扫描变更:修改 3 个文件,新增 2 个文件(均 <10MB)
→ 提交信息:"update: 新增用户模块 + 更新配置文件"
→ 推送成功
→ ✅ 完成

场景3:发版本

用户:打个 release

Skill:
→ 当前最新 tag:v0.1.0
→ "建议下一个版本号 v0.2.0,可以吗?"
→ 自动生成变更摘要(基于 commit 记录)
→ "需要附带下载文件吗?" → 不需要
→ 创建 tag + Release
→ ✅ Release v0.2.0 发布成功!

场景4:推送时发现大文件

→ git push 失败:file recording.mp4 exceeds 100MB
→ "recording.mp4 (150MB) 超过 GitHub 限制,需要排除"
→ 加入 .gitignore,重新提交推送
→ ✅ 成功

场景5:日常更新时新增大文件

用户:推一下

→ 扫描变更...发现新增文件:
  - demo.pptx (25MB)
→ "这个文件 25MB,确认要推吗?"
→ 用户确认排除 → 加入 .gitignore
→ 推送成功
→ ✅ 完成

场景6:发版本但没有新变更

用户:打个 release

→ 当前没有未提交的变更,直接进入版本发布
→ 当前最新 tag:v0.2.0
→ "建议 v0.3.0,可以吗?"
→ 用户自定义输入 v1.0.0
→ 生成变更摘要 + 创建 Release
→ ✅ Release v1.0.0 发布成功!

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

带用户精读一篇文章/文档并真正学透(不是出摘要)。五步:抽干货 → 切讲次 → 每讲跑「学-考-讲」循环 → 对号入座 → 实操+测验+讲错题+蒸馏。每讲产出 HTML 课件 + 笔记落盘;讲完必考一次,用户复述后必须挑不精确处拧紧;抽象概念上可交互演示(能点能跑);全程用用户自己的业务场景当案例;学完出多题型自动判分测验卷,最后把收获蒸馏回用户的工具。核心触发条件是用户要的是"学会"而不是"要一份结果",例如"我们一起学这篇文章/这个链接"、"带我学"、"精读"、"我想学会 X"、"这篇我看不懂你给我讲讲"。有具体材料(链接、本地文件、PDF,或用户自己的 skill/文档/代码)时直接开跑;只有学习意图而没材料时仍走本 skill,但开工第一件事是和用户一起把材料定下来,禁止凭记忆开讲。不适用于:只要一份总结/摘要/教程长文,用户读完就完、不需要答题(用 readable-output)、只是搜集资料做调研(使用可用的网页/平台取材工具)、帮我写 PRD/测试用例(用 prd-test-writer)、以及用户其实是想让你直接把活干了(那就直接做)。

The English summary is being prepared. Showing the original description.

yunshu0909/yunshu_skillshub782Updated Oct 11, 2026

和用户一起把一个功能「看不见的部分」敲定:数据存哪、谁写谁读、怎么加载、怎么保存、默认值和升级、核心执行规则、出问题时怎么办、旧东西怎么迁。每条规则带编号、案例和状态(已定 / 方案里有但你没拍板 / 待你定 / AI 定),用户只回答带案例的新选择题、过目没拍过板的规则;给用户看的是按「你会问的问题」分组的问答卡片(最绕的逻辑配可点的模拟器);最后请另一家模型只读查边界,问题闭环后封成后端逻辑包,PRD、测试用例和代码审核按规则编号追溯。触发:前端交互已定、用户说「还有很多后端逻辑 / 加载 / 配置要讲清楚」「有没有遗漏的边界条件」「规则讲清楚」;或没有界面但规则复杂的功能(调度、同步、配置、额度、迁移)。分三档用:规则多且互相影响出完整包;少量清楚的变化只出规则表;行为不变的技术修复跳过。不适用于:页面长什么样、怎么排(用 page-solution-design);写 PRD / 测试用例(本 skill 的规则包是它们的输入);纯代码重构、性能调优、架构巡检报告。

The English summary is being prepared. Showing the original description.

yunshu0909/yunshu_skillshub782Updated Oct 11, 2026

案例雷达。给一个新东西(新工具/新概念/新生态),扫一遍生态找好玩的真实案例,重点是抓"真物"(截图/源码/演示)而不是 GitHub 主页,输出可浏览的 HTML 案例集。当用户说"看看大家用 X 做了什么"、"扫一下 X 生态"、"市面上 X 有什么新玩法"、"给我看 X 的真物案例"、"/case-radar"时触发。不适合:① 已有明确目标的深度调研(使用可用的调研工具直接研究)② 写文章/出 PRD(用 writing-assistant / prd-test-writer)③ 单纯求知不需要 HTML(直接问就好)。

The English summary is being prepared. Showing the original description.

yunshu0909/yunshu_skillshub782Updated Oct 11, 2026

教程漫画「小课堂」:你的 IP 当老师(没有就先生成一个),3:4 竖版,一期默认 6–9 页(用户要几页就几页),固定有「开课」封面和「下课」结尾,交给 Codex 内置 imagegen 出图并核对。当用户说"画漫画"、"做一套漫画讲XXX"、"用漫画解释"、"小课堂"、"换个老师 / 换角色"时触发。

The English summary is being prepared. Showing the original description.

yunshu0909/yunshu_skillshub782Updated Oct 11, 2026

让 Codex 与 Claude Code 通过本机 CLI 组成“主执行者 + 独立审查者”的对称协作闭环。用于用户要求两个模型一起完成、交叉校核、独立审查、修到 ACK,或任务涉及产品需求收敛、复杂方案、跨模块开发、迁移、安全、重要重构和高质量交付时;无论从 Codex 还是 Claude Code 启动,都由当前模型主持,并完整调用另一方完成需求挑战、方案门禁、实现冷审和最终验收。

The English summary is being prepared. Showing the original description.

yunshu0909/yunshu_skillshub782Updated Oct 11, 2026

通过自适应获取上下文、读取证据、建立可修正的用户模型和进行战略判断,帮助用户找出当前阶段最重要的三件事。适用于用户询问“最重要的三件事”“我现在应该先做什么”,需要梳理人生或职业优先级,在多个目标之间犹豫,思考自由、收入、个人业务、内容创作或创业重点,或者希望模型持续了解自己后再给建议;不用于简单待办排序,也不用于目标已经确定的项目计划。

The English summary is being prepared. Showing the original description.

yunshu0909/yunshu_skillshub782Updated Oct 11, 2026

See all skills by yunshu0909

Report a problem with this skill