关于 smart-git-automation
smart-git-automation 是一项用于整理 Git 改动并引导分支、提交、推送及可选 PR 流程的技能。它根据实际改动生成名称和提交信息,并减少确认步骤。
主要功能
- 01归类相关文件改动
- 02根据改动生成分支名
- 03拟定提交信息
- 04引导推送及可选 PR 流程
- 05避免提交密钥和大型二进制文件
适用场景
- 01提交前整理混合改动
- 02根据当前改动创建分支名
- 03准备提交并检查提交信息
- 04推送已提交内容并选择创建 PR
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mskadu/ opencode-agent-skills --skill smart-git-automation安装后在 Claude Code 中输入/smart-git-automation确认已加载。
附带文件README.md
详细介绍
我的功能
- 智能检测并归类相关更改
- 根据更改自动生成描述性分支名称
- 简化工作流:扫描 → 创建分支 → 提交 → 推送 → 创建 PR,减少提示次数
何时使用我
如果你想要更快速、更智能的 Git 工作流,按逻辑归类更改并减少手动确认,请在这种情况下使用我。
工作流步骤
1. 智能检测与归类
并行运行:
git status- 检查有哪些更改git diff --stat- 查看文件修改摘要git diff --name-only- 仅列出已更改的文件git diff --staged --stat- 查看哪些内容已暂存
分析更改并按逻辑归类:
- 位于同一模块/目录中的文件 → 可能相关
- 最近编辑时一同修改的文件 → 可能相关
- 相互补充的新文件 → 可能相关
以清晰的格式展示归类后的更改,例如:
📁 Group 1: UI Components
- src/components/Button.tsx (modified)
- src/components/Button.test.tsx (modified)
📁 Group 2: API Layer
- src/api/client.ts (new)
- src/api/types.ts (modified)
2. 自动生成分支名称
根据主要更改模式生成分支名称:
- 使用格式:
<type>/<short-description> - 类型:
feature、fix、refactor、docs、test、chore - 根据最重要的已更改文件/功能提炼描述
- 转换为 kebab-case,最多 50 个字符
- 示例:
feature/add-user-auth(来自身份验证相关文件)fix/login-validation(来自验证相关更改)refactor/api-cleanup(来自 API 重构)
显示建议的分支名称,并请求用户输入一个词确认(或输入其他名称)。
3. 简化分支与提交
- 如果当前不在 main/master 分支上:检查当前分支是否与建议的名称一致
- 如果一致:留在当前分支
- 如果不一致:询问是否切换分支或创建新分支
- 创建分支:
git checkout -b <branch-name> - 暂存更改:
git add <grouped-files> - 根据更改自动生成提交消息:
- 第一行:
<type>: <short description>(最多 72 个字符) - 正文:归类后的文件更改及简短说明
- 第一行:
- 使用生成的消息提交,并先显示预览
- 请求用户输入一个词确认后继续
4. 推送与可选的 PR
- 提交后询问:“推送到远程仓库?(yes/no/abort)”
- 如果回答 yes:
git push -u origin <branch-name> - 然后询问:“创建 PR?(yes/no)”
- 如果回答 yes:
- 检查远程仓库:
git remote -v - 如果是 fork:使用 fork 的远程仓库(例如
mskadu/repo-name) - 根据提交消息自动生成 PR 描述
- 使用
gh pr create,并设置:- 标题:使用分支名称
- 正文:更改摘要 + 文件分类 + 后续说明
- 检查远程仓库:
重要规则
- 自动归类相关文件,但允许用户调整
- 根据实际更改生成分支名称,不要询问用户要取什么名称
- 减少确认步骤:请求用户输入一个词,或仅设置单个确认节点
- 绝不提交机密、凭据或大型二进制文件
- 创建 PR 前检查 GitHub 仓库是否存在
- 用户在任何时候回答“no”时,跳过 PR 步骤
- 如果分支已存在且有更改,提供修改现有提交或新增提交的选项
评论
支持 Markdown